フォノクラフト株式会社:作業メモや備忘録など

作業メモや備忘録など…

[wp] wordpressを使う際に必ず追記するCSSのクラス設定

without comments

既存テンプレートを使わずにゼロからテンプレートを構築した場合は デフォルトでも必要なクラス設定を入れましょう。

うちで主に必要になるのは、アップした画像の回り込みやセンター寄せ等のスタイルと、プラグイン「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;
	}
]

Categoty in CSS / WordPress

[wp] 管理画面にログインしている時にだけ表示させる

without comments

テストしているときによく使うのでこの機会にメモ。

<?php
if (!is_user_logged_in()) {
}else{
?>

ここに表示したい内容。

<?php } ?>

Categoty in PHP / WordPress

[ec-cube] 通常価格と販売価格が違う場合は「○○%OFF」の表示する

without comments

通常価格と販売価格が違う場合は「○○%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%;">販売価格:&nbsp;&nbsp;</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;">通常価格&nbsp;&nbsp;</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%;">販売価格:&nbsp;&nbsp;</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}-->

Categoty in EC-CUBE / PHP / Smarty

[wp] ループ中の記事数を取得し、特定の件数ごとに処理する。

without comments

↓ちょっとした事ですが、これはとても便利です!

出典:KH-WEBLOG / http://www.kxh-web.com/web/wp/628

Categoty in PHP / WordPress

[css] めも

without comments

.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;}

Categoty in CSS

[php] 数値で8桁の乱数を100個生成する

without comments

数値で8桁の乱数を100個生成する

<?php
for ($i = 0 ; $i < 100 ; $i++){
	$pw = mt_rand(0,99999999);
	$pw2 = sprintf("%08d",$pw);
	echo "" . $pw2 . "<br />";
}
?>

Categoty in PHP

[php] 簡単なコンテンツ公開タイマー、その2

without comments

公開日時を過ぎてしまう

厳密な時間指定でのコンテンツ公開で“うっかり忘れ”を防止する保険、という意味で有用。

アクセス毎に処理が走るので公開時間を過ぎた時点で、このスクリプトは排してしまった方がいいかも。

時間を上書きして確認するには

■現在時間を操作する
 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 } ?>

Categoty in PHP

[phpMyAdmin] 空のセルを抽出する

without comments

「検索」から

REGEXP = 正規表現で〜が入っていれば

NOT REGEXP = 正規表現で〜が入っていなければ

実用編

小難しい正規表現を使わなくても、全角の判定なら以下である程度いけます。

  1. 全角記号
     [、-◯]
  2. 全角かな・漢字
     [ぁ-ヶ]|[亜-煕](※Shift_JISの場合)
  3. 全角かな・漢字
     [ぁ-ヶ]|[一-龠](※UTF-8 の場合)

Categoty in DataBase / MySQL / phpMyAdmin

[wp] カテゴリ一覧の表示:特定のカテゴリを間引きつつ特定の文字列も削除しつつ…

without comments

ソース

<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私的マニュアル

Categoty in PHP / WordPress

[sql] SQL文で特定のフィールド(カラム)内の文字列を一括置換する【MySQL】

without comments

SQL文

UPDATE `テーブル名` SET フィールド名A=REPLACE (フィールド名A,"置換前の文字列","置換後の文字列");

記述例

UPDATE `dtb_customer` SET uname=REPLACE (uname,"山田","鈴木");

Categoty in DataBase / MySQL / SQL