[wp] wordpressを使う際に必ず追記するCSSのクラス設定
既存テンプレートを使わずにゼロからテンプレートを構築した場合は デフォルトでも必要なクラス設定を入れましょう。
うちで主に必要になるのは、アップした画像の回り込みやセンター寄せ等のスタイルと、プラグイン「wp-pagenavi」用のスタイルです。
アップした画像の回り込みやセンター寄せ等のスタイル
(※marginの値は適所変更してください)
/* ================================================= */
/* wordpress UPLOAD IMG */
/* ================================================= */
img.centered {
display: block;
clear: both;
margin: 0.25em auto 1.5em;
/*margin: 10px auto;*/
}
img.aligncenter {
display: block;
clear: both;
margin: 0.25em auto 1.5em;
/*margin: 10px auto;*/
}
img.alignleft {
float: left;
clear: both;
margin: 0.25em 1.5em 1.5em 0;
/*margin: 0 10px 5px 0;*/
}
img.alignright {
float: right;
clear: both;
margin: 0.25em 0 1.5em 1.5em;
/*margin: 0 0 5px 10px;*/
}
プラグイン「wp-pagenavi」用のスタイル
(※colorやmargin/paddingの値は適所変更してください)
/* ================================================= */
/* wordpress Plugin [wp-pagenavi] */
/* ================================================= */
/*#post p{padding-bottom:20px;}*/
.navigation {
display: block;
text-align: center;
margin-bottom: 30px;
font-size:12px;
}
.wp-pagenavi {
clear: both;
}
.wp-pagenavi a, .wp-pagenavi span {
text-decoration: none;
border:0px solid #FFFFFF;
padding: 3px 5px;
margin: 2px;
}
.wp-pagenavi a:hover, .wp-pagenavi span.current {
color:#fff
font-weight:bold;
border-radius: 2px;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
}
.wp-pagenavi span.current {
border:1px solid #4A872A;
background:#4A872A;
border-radius: 2px;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
color:#fff;
}
.wp-pagenavi .pages {
display: none;
}
][wp] 管理画面にログインしている時にだけ表示させる
テストしているときによく使うのでこの機会にメモ。
<?php
if (!is_user_logged_in()) {
}else{
?>
ここに表示したい内容。
<?php } ?>
[ec-cube] 通常価格と販売価格が違う場合は「○○%OFF」の表示する

毎度のことながらコアファイルはイジらずにテンプレートだけで処理します。
基本的になロジックは
■販売価格と通常価格が同じ金額であれば、
通常価格は表示せず、販売価格だけの表示になります。
■販売価格と通常価格が違う金額であれば、
打ち消し線を入れた通常価格と「○○%OFF」を表示させます。
ついでに、販売価格も赤字のボールド文字にします。
「○○%OFF」の表記は
『100 – (販売価格 ÷ 通常価格 × 100) =○○%OFF』(※小数点以下は四捨五入で切り上げ)
という計算で自動で出しています。
やってみる
/data/Smarty/templates/default/products/detail.tpl
の価格表示部分だけ抜粋します。
<!--{if $arrProduct.price01_min == $arrProduct.price02_min}-->
<!--{if $arrProduct.price01_max > 0}-->
<tr>
<td style="white-space: nowrap;width:1%;">販売価格: </td>
<td>
<!-- 販売価格 -->
<!--{if $arrProduct.price02_min == $arrProduct.price02_max}-->
<!--{$arrProduct.price02_min|number_format}-->円 (税込<!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->円)
<!--{else}-->
<!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->〜<!--{$arrProduct.price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->円
<!--{/if}-->
<!-- /販売価格 -->
</td>
</tr>
<!--{/if}-->
<!--{else}-->
<tr>
<td style="white-space: nowrap;width:1%;line-height: 180%;vertical-align:top;">通常価格 </td>
<td style="line-height: 180%;">
<!--{php}-->
//OFF値表示の計算
$arrProduct = $this->get_template_vars('arrProduct');
$OffPrice1 = "" . 100-($arrProduct[price02_min]/$arrProduct[price01_min]*100) . "";
$OffPrice2 = "" . 100-($arrProduct[price02_max]/$arrProduct[price01_max]*100) . "";
$this->assign('OffPrice1',$OffPrice1);
$this->assign('OffPrice2',$OffPrice2);
<!--{/php}-->
<!-- 通常価格 -->
<!--{if $arrProduct.price01_min == $arrProduct.price01_max}-->
<s><!--{$arrProduct.price01_min|number_format}--></s>円
<span style="color:#993300;font-weight:bold;">▼<!--{$OffPrice1|round:0}-->% OFF</span>
<!--{else}-->
<s><!--{$arrProduct.price01_min|number_format}-->〜<!--{$arrProduct.price01_max|number_format}--></s>円<br />
<span style="color:#993300;font-weight:bold;">▼Max<!--{$OffPrice2|round:0}-->% OFF</span>
<!--{/if}-->
<!-- /通常価格 -->
</td>
</tr>
<!--{if $arrProduct.price01_max > 0}-->
<tr>
<td style="white-space: nowrap;width:1%;">販売価格: </td>
<td>
<!-- 販売価格 -->
<!--{if $arrProduct.price02_min == $arrProduct.price02_max}-->
<span style="color:#993300;font-weight:bold;font-size:12px;"><!--{$arrProduct.price02_min|number_format}-->円</span> (税込<!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->円)
<!--{else}-->
<span style="color:#993300;font-weight:bold;font-size:12px;"><!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->〜<!--{$arrProduct.price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->円</span>
<!--{/if}-->
<!-- /販売価格 -->
</td>
</tr>
<!--{/if}-->
<!--{/if}-->
[wp] ループ中の記事数を取得し、特定の件数ごとに処理する。
↓ちょっとした事ですが、これはとても便利です!
出典:KH-WEBLOG / http://www.kxh-web.com/web/wp/628[css] めも
.mb01 { margin-bottom:01px !important;}
.mb02 { margin-bottom:02px !important;}
.mb03 { margin-bottom:03px !important;}
.mb05 { margin-bottom:05px !important;}
.mb08 { margin-bottom:08px !important;}
.mb10 { margin-bottom:10px !important;}
.mb12 { margin-bottom:12px !important;}
.mb15 { margin-bottom:15px !important;}
.mb20 { margin-bottom:20px !important;}
.mb25 { margin-bottom:25px !important;}
.mb30 { margin-bottom:30px !important;}
.mb35 { margin-bottom:35px !important;}
.mb40 { margin-bottom:40px !important;}
.mb45 { margin-bottom:45px !important;}
.mb50 { margin-bottom:50px !important;}
.mb80 { margin-bottom:80px !important;}
.mb100{ margin-bottom:100px !important;}
.mt01 { margin-top:01px !important;}
.mt02 { margin-top:02px !important;}
.mt03 { margin-top:03px !important;}
.mt05 { margin-top:05px !important;}
.mt08 { margin-top:08px !important;}
.mt10 { margin-top:10px !important;}
.mt12 { margin-top:12px !important;}
.mt15 { margin-top:15px !important;}
.mt20 { margin-top:20px !important;}
.mt25 { margin-top:25px !important;}
.mt30 { margin-top:30px !important;}
.mt35 { margin-top:35px !important;}
.mt40 { margin-top:40px !important;}
.mt45 { margin-top:45px !important;}
.mt50 { margin-top:50px !important;}
.mt80 { margin-top:80px !important;}
.mt100{ margin-top:100px !important;}
.pb01 { padding-bottom:01px !important;}
.pb02 { padding-bottom:02px !important;}
.pb03 { padding-bottom:03px !important;}
.pb05 { padding-bottom:05px !important;}
.pb08 { padding-bottom:08px !important;}
.pb10 { padding-bottom:10px !important;}
.pb12 { padding-bottom:10px !important;}
.pb15 { padding-bottom:15px !important;}
.pb20 { padding-bottom:20px !important;}
.pb25 { padding-bottom:25px !important;}
.pb30 { padding-bottom:30px !important;}
.pb35 { padding-bottom:35px !important;}
.pb40 { padding-bottom:40px !important;}
.pb45 { padding-bottom:45px !important;}
.pb50 { padding-bottom:50px !important;}
.pb80 { padding-bottom:80px !important;}
.pb100{ padding-bottom:100px !important;}
[php] 数値で8桁の乱数を100個生成する
数値で8桁の乱数を100個生成する
<?php
for ($i = 0 ; $i < 100 ; $i++){
$pw = mt_rand(0,99999999);
$pw2 = sprintf("%08d",$pw);
echo "" . $pw2 . "<br />";
}
?>
[php] 簡単なコンテンツ公開タイマー、その2

公開日時を過ぎてしまう
厳密な時間指定でのコンテンツ公開で“うっかり忘れ”を防止する保険、という意味で有用。
アクセス毎に処理が走るので公開時間を過ぎた時点で、このスクリプトは排してしまった方がいいかも。
時間を上書きして確認するには
■現在時間を操作する
http://○○○○.co.jp/index.php?nt=201205230000
■開始設定時間を操作する
http://○○○○.co.jp/index.php?st=201208241455
■終了設定時間を操作する
http://○○○○.co.jp/index.php?et=201312300000
ソース
<?php
//data関数だけだと9時間のズレが生じる場合があるので
date_default_timezone_set('Asia/Tokyo');
if ($_GET[nt] != "") { $now_time = $_GET[nt]; }else{
//現在時間
$now_time = date('YmdHi');
}
if ($_GET[st] != "") { $start_time = $_GET[st]; }else{
//開始時間をセット
$start_time = "201210150000";
}
if ($_GET[et] != "") { $end_time = $_GET[et]; }else{
//終了時間をセット
$end_time = "201211302359";
}
?>
<?php
//echo "今:" . $now_time . "<br />";
//echo "始:" . $start_time . "<br />";
//echo "終:" . $end_time . "<br />";
if (($now_time > $start_time) and ($now_time < $end_time)) {
?>
ここに期間中掲載したいバナーなどを入れる。
<?php } ?>
[phpMyAdmin] 空のセルを抽出する
「検索」から

REGEXP = 正規表現で〜が入っていれば
NOT REGEXP = 正規表現で〜が入っていなければ
実用編
小難しい正規表現を使わなくても、全角の判定なら以下である程度いけます。
-
全角記号
[、-◯] -
全角かな・漢字
[ぁ-ヶ]|[亜-煕](※Shift_JISの場合) -
全角かな・漢字
[ぁ-ヶ]|[一-龠](※UTF-8 の場合)
[wp] カテゴリ一覧の表示:特定のカテゴリを間引きつつ特定の文字列も削除しつつ…
ソース
<ol>
<?php
//↓カテゴリはID順序にし、特定のカテゴリID「1,9,10,11,13,15,17,21」を非表示、
$categorys = get_categories('orderby=id&hide_empty=0&exclude=1,9,10,11,13,15,17,21');
foreach ($categorys as $category) {
//↓特定の文字列を削って表示させたい場合に。
$title = str_replace( "ここに特定の文字列", "",$category->name);
?>
<li><a href="<?php echo get_category_link($category->term_id); ?>"><?php echo $title; ?>(<?php echo $category->count; ?>)</a></li>
<?php } ?>
</ol>
参考
・関数リファレンス/get categories – WordPress Codex 日本語版
・get_categories:WordPress私的マニュアル
[sql] SQL文で特定のフィールド(カラム)内の文字列を一括置換する【MySQL】
SQL文
UPDATE `テーブル名` SET フィールド名A=REPLACE (フィールド名A,"置換前の文字列","置換後の文字列");
記述例
UPDATE `dtb_customer` SET uname=REPLACE (uname,"山田","鈴木");
