CMS関連
カスタムフィールド並び替えが数字の場合の注意点【WordPress】
カスタムフィールド順に並び替える場合、query_postsを使うと、こんな感じになります。
query_posts( array( "orderby" => "meta_value", "meta_key" => "(カスタムフィールドのキー)", "order" => "ASC" ) );
しかし各投稿のカスタムフィールドの中身が、1,2,3,4,5,6,7,8,9,10,11,12・・・
となっている場合、順番が
1,11,12,2,3,4,5,6,7,8,9・・・
となってしまいます。
このような場合、orderbyはmeta_valueではなく、meta_value_numとしなくてはなりません。
query_posts( array( "orderby" => "meta_value_num", "meta_key" => "(カスタムフィールドのキー)", "order" => "ASC" ) );
これで、並び替えの内容が数字と判断され、数字の順番通りに並びます。
参考サイト
テンプレートタグ/query posts - WordPress Codex 日本語版
nandani | 2014年12月15日 | コメント(0) | トラックバック(0) | CMS関連
管理画面の投稿やカテゴリー(カスタムタクソノミー)画面でも並び替えを反映させる【WordPress】
カテゴリーおよびカスタムタクソノミーの並び替えを簡単に行えるプラグイン「PS Taxonomy Expander」
フロントエンドでは、get_termsやwp_list_categoriesの"orderby"を"order"にすることによって、並び替えた順に並んでくれます。
しかし管理画面の「新規投稿を追加」や「投稿を編集」のカテゴリー選択リスト、および「カテゴリー」画面のカテゴリーリストでは並び順が反映されていません。
「Category Order and Taxonomy Terms Order」というプラグインもあって、これを使用すると管理画面内の並び順も反映されるんですけどね。
こっちを使ってもいいし、「PS Taxonomy Expander」のまま、functions.phpに下記を追加しても構いません。
function my_get_terms_orderby($orderby){ if(is_admin()){ return "t.term_order"; }else{ return $orderby; } } add_filter('get_terms_orderby', 'my_get_terms_orderby', 10);
これで管理画面内のカテゴリーの並び順は強制的に、Term Orderで設定した並び順に並びます。
※必ず一度は並び替えの保存を行ってください。未保存のままだとカテゴリーリストが表示されなくなります。
しかしフック機能の便利さには舌を巻きますね。何でもできる気分になりますw
nandani | 2014年12月02日 | コメント(0) | トラックバック(1) | CMS関連 | PHP関連
ページのスラッグからデータを引き出す方法【WordPress】
get_page_by_path("スラッグ名");
で、そのスラッグ名のページ(固定ページ)を取得できます。
第3引数をpostとすれば、「投稿」から取得できます。
get_page_by_path("スラッグ名", "OBJECT", "post");
なお、固定ページで、親ページが設定されている場合、親ページのスラッグも含める必要があります。
get_page_by_path("親ページのスラッグ名/スラッグ名");
だから、やっぱり正確にはスラッグ名ではないんですね。
参考サイト
nandani | 2014年11月24日 | コメント(0) | トラックバック(0) | CMS関連 | PHP関連
WordPressでTinyMCEの入力フィールドを作る場合
任意の場所に、Wordpressの内容入力フィールドと同じようにリッチテキストエディタ(TinyMCE)を設置する方法は、
wp_editor( "(内容)", '(ID)');
で、設置できます。
第3引数に細かい設定ができますが、(ID)をnameと同じにしていればこれだけでもOKです。
プラグインなしでカスタムフィールド作ってた際(functions.phpに直書き)どうやったらリッチテキストエディタになるのか、かなり苦戦したのでメモ。
参考サイト
nandani | 2014年11月12日 | コメント(0) | トラックバック(0) | CMS関連 | PHP関連
初期テーマの設定【WordPress】
WordPressの初期テーマは、「twentyxxxx」のような、最初から入っているテーマに設定されています。
これはこのテーマを削除しても、インストール直後はそのテーマが選択されている状態となります。
1サイト・1Wordpressなら、特に初期テーマは気にしなくてもよいのですが、マルチサイト化する場合は、初期テーマを任意のものにしたい、かもしれません。どのサイトもテーマを統一したいのに追加するたびに、テーマを選択しなくてはなりませんからね。
ということで、Wordpress本体の中から、設定されている場所を探します。
wp-includes/default-constants.php
の中に、
define( 'WP_DEFAULT_THEME', 'twentyfourteen' );
という記述があります。
これがテーマの初期設定です。
これを変えれば、初期テーマを変えることができるのですが、Wordpressをアップデートするたびに修正するのは面倒なので、wp-config.phpにこれを追記します。
define( 'WP_DEFAULT_THEME', 'xxxxxxxx' );
xxxxxxxxには、初期テーマにしたいテーマのフォルダ名を記述してください。
これで、こちらの設定が優先されます。
nandani | 2014年09月12日 | コメント(0) | トラックバック(0) | CMS関連
固定ページの子ページを表示するショートコード【WordPress】
開いた固定ページの子ページが、自動的にリスト表示されるようにしたい場合、wp_list_pagesをショートコードにしてしまうと便利です。
functions.phpに下記を追記します。
function pageChild() { global $post; $args = array('depth' => 0, 'show_date' => NULL, 'date_format' => get_option('date_format'), 'child_of' => $post->ID, 'exclude' => NULL, 'include' => NULL, 'title_li' => '', 'echo' => 0, 'authors' => NULL, 'sort_column' => 'menu_order, post_title', 'link_before' => '', 'link_after' => '', 'exclude_tree' => '' ); $return = '<ul class="page_child">'; $return .= wp_list_pages($args); $return .= '</ul>'; return $return; } add_shortcode('page_child', 'pageChild');
子ページ持ちの固定ページに
[page_child]
と記述すると、その子ページがリスト表示されるようになります。
関数自体はなんてことないものですが、ショートコードって便利ですね。
nandani | 2014年06月11日 | コメント(0) | トラックバック(0) | CMS関連 | PHP関連
MTタグとWordPressタグ【カテゴリー編】
WordPressにおいて、カスタムタクソノミーもカテゴリーと同じように扱うことができますが、割と使用する関数や変数が異なりややこしいので、ここは通常の「カテゴリー」に絞ります。
nandani | 2013年06月26日 | コメント(0) | トラックバック(0) | CMS関連
MTタグとWordPressタグ【ブログ編】
nandani | 2013年06月25日 | コメント(0) | トラックバック(0) | CMS関連
get_postsで取得したデータでも、ショートコードを実行する【WordPress】
メモ。
the_content()で表示した「内容」ならば自動的にショートコードが実行されるのですが、get_postsで取得した記事の「内容(例えば$hoge->post_content)」では、ショートコードが実行されません。
そのままショートコードが表示されてしまいます。
そういう場合は、do_shortcode関数を使用しましょう。
do_shortcode($hoge->post_content);
これで、内容中に含まれるショートコードが実行されるようになります。
なお、get_the_content()でも同様にショートコードが実行されませんので同じく
do_shortcode(get_the_content());
としてください。
参考サイト
nandani | 2013年06月21日 | コメント(0) | トラックバック(1) | API関連 | CMS関連