jquery で要素をカウント

<!-- エラー重複処理 -->
<script type="text/javascript">
// <![CDATA[
//郵便番号
$(function(){
	//"div.categoryの要素毎に処理する
	$(".errorZip").each(function () {
	//"div.categoryの要素内のliの数をカウント
		var num = $(this).find('p').length;
		//alert (num);
	//"div.category内のul.catlist liが0件だったら
		if(num >= 2){
		$('.errorZip00').css('display','block');
		$('.errorZip01').css('display','none');
		$('.errorZip02').css('display','none');
		}
	});

});
// ]]>
</script>

WordPress の自動アップデートを止める方法

WordPress の自動アップデートを止めるには、config.phpに下記を追記する。

/** 自動アップデートの無効 */
define( 'AUTOMATIC_UPDATER_DISABLED', true );

CSSで最低の高さを実現する。

/*————————————————
500pxの最低の高さ
————————————————-*/
#hoge {
min-height:500px;
height:auto !important;
height:500px;
}

WordPressでスマホやタブレットなどに応じてテーマが切り替えられるプラグインMulti Device Switcher

WordPressでスマホやタブレットなどに応じてテーマが切り替えられるプラグインMulti Device Switcher
Multi Device Switcher

WordPressでカスタムフィールにショートコード使用する方法

WordPressでカスタムフィールにショートコード使用するには、
以下のタグを使用する。

<?php
echo apply_filters('the_content', get_post_meta($post->ID, 'foo', true));
?>

wordpressでテーマファイルのphpファイルをインクルードする方法

テンプレートパートファイルをインクルードする場合に、

<?php include (TEMPLATEPATH . '/mydirectory/template.php') ?>

と記述する事も出来る

<?php get_template_part('mydirectory/template'); ?>

と記述する事も出来ます

<?php locate_template( 'mydirectory/template.php', true,true ); ?>

と記述する事も出来ます

robots.txtで検索エンジンを拒否する方法

User-agent: *
Disallow: /

smartyのコメントアウト

smartyのコメントアウトする際は、
を使うとうまく反映されない場合があるので、

<!--{if false}-->
テストテストテストテストテスト
<!--{/if}-->

とすると良い。

商品一覧ブロックを作成する

1.html/frontparts/bloc/product_list.php を新規作成

<?php

// {{{ requires
require_once(CLASS_EX_REALDIR . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List_Ex.php");

// }}}
// {{{ generate page

$objPage = new LC_Page_FrontParts_Bloc_Product_List_Ex();
register_shutdown_function(array($objPage, "destroy"));
$objPage->init();
$objPage->process();

?>

2.data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List_Ex.php を新規作成

<?php

// {{{ requires
require_once(CLASS_REALDIR . "pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php");

/**
 * product_List のページクラス(拡張).
 *
 * LC_Page_FrontParts_Bloc_Product_List をカスタマイズする場合はこのクラスを編集する.
 *
 */
class LC_Page_FrontParts_Bloc_Product_List_Ex extends LC_Page_FrontParts_Bloc_Product_List {

    // }}}
    // {{{ functions

    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init() {
        parent::init();
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process() {
        parent::process();
    }

    /**
     * デストラクタ.
     *
     * @return void
     */
    function destroy() {
        parent::destroy();
    }
}

?>

3.data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php を新規作成

<?php

// {{{ requires
require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php';

/**
 * Product_List のページクラス.
 *
 * @package Page
 */
class LC_Page_FrontParts_Bloc_Product_List extends LC_Page_FrontParts_Bloc {

    // }}}
    // {{{ functions

    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init() {
        parent::init();
        $bloc_file = 'product_list.tpl';
        $this->setTplMainpage($bloc_file);
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process() {
        if (defined("MOBILE_SITE") && MOBILE_SITE) {
            $objView = new SC_MobileView();
        } else {
            $objView = new SC_SiteView();
        }

        $objQuery = new SC_Query_Ex();
        $objProduct = new SC_Product_Ex();

        //$objQuery->setLimitOffset(10);
        //$objQuery->setOrder("update_date desc");
        $this->arrProducts = $objProduct->lists(&$objQuery);

        $objView->assignobj($this);
        $objView->display($this->tpl_mainpage);
    }

    /**
     * デストラクタ.
     *
     * @return void
     */
    function destroy() {
        parent::destroy();
    }
}

?>

$this->arrProducts を定義するところの上にコメントアウトされた行がありますが、
その1行目は「10件のみ取り出す」、2行目は「update_date(更新日時)の降順に並べる」という意味です。
コメント記号を削除すれば、「更新があった商品リスト(最新10件)」にもなりそうです。

4.data/Smarty/templates/default/frontparts/bloc/product_list.tpl を新規作成

<style type="text/css">
div#productlist_area h2 {
    background-color:#de5e17;
    text-align:center;
    color:#fff;
    padding:7px 0 7px 0;
}
div#productlist_area div.productImage {
    float:left;
    width:40px;
    padding:0 8px 0 0;
}
div#productlist_area div.productContents {
    float:left;
    width:100px;
}
div#productlist_area div.product_item {
    padding:5px 0 5px 5px;
}
</style>

<!--{if count($arrProducts) > 0}-->
    <div class="bloc_outer clearfix">
        <div id="productlist_area">
            <h2>商品一覧リスト</h2>
            <div class="bloc_body clearfix">
                <!--{foreach from=$arrProducts item=arrProduct}-->
                    <div class="product_item clearfix">
                        <div class="productImage">
                            <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->"><img src="<!--{$smarty.const.ROOT_URLPATH}-->resize_image.php?image=<!--{$arrProduct.main_list_image|sfNoImageMainList|h}-->&width=40&height=40" alt="<!--{$arrProduct.name|h}-->" /></a>
                        </div>
                        <div class="productContents">
                            <h3>
                                <a href="<!--{$smarty.const.P_DETAIL_URLPATH}--><!--{$arrProduct.product_id|u}-->"><!--{$arrProduct.name|h}--></a>
                            </h3>
                            <p class="sale_price">
                                <span class="price"><!--{$arrProduct.price02_min|sfCalcIncTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}--> 円</span>
                            </p>
                        </div>
                    </div>
                </dl>
                <div class="clear"></div>
                <!--{/foreach}-->
            </div>
        </div>
    </div>
<!--{/if}-->

5.データベースに新規ブロック情報を登録
insert into dtb_bloc values(10,10,’product_list’,’product_list.tpl’,’product_list’,now(),now(),’frontparts/bloc/product_list.php’,0);

6.特定のカテゴリだけ表示する場合・・・
3.data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php を新規作成
箇所を下記とする

<?php

// {{{ requires
require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php';

/**
 * Product_List のページクラス.
 *
 * @package Page
 */
class LC_Page_FrontParts_Bloc_Product_List extends LC_Page_FrontParts_Bloc {

    // }}}
    // {{{ functions

    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init() {
        parent::init();
        $bloc_file = 'product_list.tpl';
        $this->setTplMainpage($bloc_file);
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process() {
        if (defined("MOBILE_SITE") && MOBILE_SITE) {
            $objView = new SC_MobileView();
        } else {
            $objView = new SC_SiteView();
        }

        $objQuery = new SC_Query_Ex();

        // 商品一覧を取得
        $col = 'T1.product_id, T1.main_list_image, T1.name, T2.price02 AS price02_min';
        $from = 'dtb_products as T1 INNER JOIN dtb_products_class as T2 ON T1.product_id = T2.product_id';
        $from .= ' INNER JOIN dtb_product_categories as T3 ON T1.product_id = T3.product_id';
        $where = 'T2.del_flg = 0 and T3.category_id IN ( ? , ? )';  // $arrval で指定するカテゴリIDの数だけ ? を増やす
        $arrval = Array( 4 , 6 );   // 一番下層のカテゴリIDを指定する
        //$objQuery->setOrder("T1.update_date desc");
        $arrProducts = $objQuery->select($col, $from, $where, $arrval);

        // 重複データ削除
        $tmp = Array();
        $i = 0;
        $max_count = 10;    // 取得したい商品個数を指定する
        foreach($arrProducts as $arrProduct){
            if(!in_array($arrProduct['product_id'], $tmp)){
                $this->arrProducts[$i] = $arrProduct;
                $i++;
            }
            $tmp[] = $arrProduct['product_id'];
            if($i >= $max_count){
                break;
            }
        }

        $objView->assignobj($this);
        $objView->display($this->tpl_mainpage);
    }

    /**
     * デストラクタ.
     *
     * @return void
     */
    function destroy() {
        parent::destroy();
    }
}

?>

wordpressのカスタム投稿のfeed URLを取得

カスタム投稿タイプのスラッグが「blog」の場合。
http://WordPressのサイトアドレス/feed?post_type=blog

固定ページの最上位のスラッグを取得する方法

function.phpに下記を記述

//bodyクラスに最上位のスラッグを表示
function ps_get_root_page( $cur_post, $cnt = 0 ) {
	if ( $cnt > 100 ) { return false; }
	$cnt++;
	if ( $cur_post->post_parent == 0 ) {
		$root_page = $cur_post;
	} else {
		$root_page = ps_get_root_page( get_post( $cur_post->post_parent ), $cnt );
	}
	return $root_page;
}

取得したいテンプレートファイルに下記を記述

$root_slug = ps_get_root_page( $post );
$root_slug = $root_slug->post_name;
echo $root_slug;

WordPressのテンプレートファイル内に、他のテンプレートphpファイルを呼び出す

<?php include( TEMPLATEPATH . '/sample.php' ); ?>

記事・固定ページ内の任意の位置でPHPファイルをインクルード(挿入/実行)する方法

/wp-content/themes/使用中のテーマ名/functions.php の最後に以下を挿入。

function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/$file.php");
    return ob_get_clean();
} 

add_shortcode('myphp', 'Include_my_php');

読み込みたいphpファイルを作成し、同フォルダにアップする。

記事内に以下を記述(ファイル名がexample.phpの場合)

[myphp file='example']

cssで背景の大きさをスマホなども含め、各ブラウザに対応する方法

cssで背景の大きさをスマホなども含め、各ブラウザに対応する方法は以下。

	background-size: 37px 22px;
	-webkit-background-size: 37px 22px;
	-moz-background-size: 37px 22px;
	-o-background-size: 37px 22px;
	-ms-background-size: 37px 22px;

WordPressの投稿でサイトURLとテーマフォルダのパスをショートコードで取得する方法

サイトURLを取得するショートコードを作成

function shortcode_url() {
    return get_bloginfo('url');
}
add_shortcode('url', 'shortcode_url');

/* 投稿内で [url] と記述する */

投稿内でショートコードを記述するれば、blobinfo(‘url’)の値と置き換えられるようになります。

テーマフォルダのパスを取得するショートコードを作成

function shortcode_templateurl() {
    return get_bloginfo('template_url');
}
add_shortcode('template_url', 'shortcode_templateurl');

/* 投稿内で [template_url] と記述する */

こちらも同じく、投稿内でショートコードを記述すれば、blobinfo(‘template_url’)の値と置き換えられるようになります。

CSSでボックスの内容物を上下中央揃えにする方法。

.sample {
	display: table-cell;
	vertical-align: middle;
}

/* IE 7 */
*:first-child+html .sample {
	display: inline;
	zoom: 1;
}
 
/*\*//*/
* html .sample {
	display: inline-block;
}
/**/

jQueryでテキストの初期値をフォーカス時に消す方法

jQueryでテキストの初期値をフォーカス時に消すには、
下記タグで実現できる

<ul>
	<li><input type="text" value="ユーザー名" /></li>
	<li><input type="text" value="メールアドレス" /></li>
</ul>
input {
	color: #ccc;
}
input .textFocus {
	color: #333333 !important;
}
jQuery(document).ready(function(){

//  textBox は テキストボックス全てを指定。
var textBox = jQuery("input:text");

//  条件は テキストボックスにフォーカスされたら。
textBox.focus(function(){
	//  class名 "textFocus" を追加。(文字色を濃くする)
	jQuery(this).addClass("textFocus");
	
	//  if条件は HTMLで設定した初期値(value)のままかどうか
	if(this.value == this.defaultValue){
		//  trueなら テキストボックスを 空 にする
		jQuery(this).val('');
	}
//  逆に テキストボックスからフォーカスが失われたとき。
}).blur(function(){

	//  if条件は テキストボックスの数値が 空(0文字)のとき
	if(jQuery(this).val() == ''){
		//  テキストボックスの中身を 元の初期値(value)にする
		//  classも外す(文字色を元の薄い色に戻す)
		jQuery(this).val(this.defaultValue).removeClass("textFocus");
	}
});
	
});

WordPressで特定のカテゴリーの最新記事を表示

WordPressで特定のカテゴリーの最新記事を表示するタグは以下の通り

<?php
query_posts('showposts=1&cat=13');
while(have_posts()) : the_post();
?>
<div><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></div>
<div><?php the_content(); ?></div>
<?php endwhile; ?>

WordPressでカテゴリー一覧を表示する

WordPressでカテゴリー一覧を表示するには、下記の様に記述する。

<ul>
	<?php
	$cat_all = get_terms( "category", "fields=all&get=all&exclude_tree=12&exclude=11" );
	foreach($cat_all as $value):
	 ?>
	<li><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?>(<?php echo $value->count;?>)</a></li>
	<?php endforeach; ?>
</ul>

echo $value->name; //カテゴリ名を出力
echo $value->term_id; //カテゴリIDを出力
echo $value->slug; //カテゴリスラッグを出力
echo $value->count; //カテゴリの投稿数を出力

その他にも、
fields=all&get=all&exclude_tree=12&exclude=11
の部分を変更する事で、取得するカテゴリーを指定することもできる。

詳細はこちら。
http://elearn.jp/wpman/function/get_terms.html

WordPressのカスタムフィールドを改行ありで表示

WordPressのカスタムフィールドを改行ありで表示するサンプルタグは以下の通り。

$sample = post_custom('カスタムフィールド');
echo nl2br($sample);

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress