MENU
恋と生き方のエッセー、子育てコラムは移転しましたsanmarie*com

記事の並び順をカスタムフィールドのメタ値で指定する方法

カテゴリー・アーカイブやタグ・アーカイブで、投稿の並び順を、カスタムフィールドのメタ値で指定する方法です。

まず、カスタムフィールドに、任意の名前と数値を入力します。

『名前』は、何でも分かりやすいものでOK。

『値』は、投稿数が多い場合、1、2、3、4・・のように一桁から始めるより、01、02、03・・・、もしくは、001、002、003・・・のように二桁~三桁で設定するのをおすすめします。

その方が確実に序列が反映されるので。

カスタムフィールドに並び順の数値を入力

続いて、functions.php に次のコードを記入します。

query->set は、WordPressの関数リファレンス/WP Queryを参照のこと。

ここでは、投稿の並び順(order)を「 ASC (昇順)」に設定していますが、ランダム、降順など、自由に設定することができます。


add_action( 'pre_get_posts', 'my_change_sort_order'); 
    function my_change_sort_order($query){
        if(is_archive()):
         //If you wanted it for the archive of a custom post type use: is_post_type_archive( $post_type )
           //Set the order ASC or DESC
           $query->set( 'order', 'ASC' );
           //Set the orderby
           $query->set( 'meta_key', 'story' );
           $query->set( 'orderby', 'meta_value_num' );
        endif;    
    };
・ お使いのテーマ・テンプレートによっては、archive を指定することで、「管理画面の検索機能が正常に動作しない」「新着記事のウィジェットが正しく表示されない」など、不具合が生じることがあります。
その都度、サイト全体の動きを見ながら、functions.php の記述を調整して下さい。

カスタムフィールドの応用例

上記の方法に、プラスして、有料プラグインの 『Admin Column Pro』 を使えば、管理も楽になります。

参照記事 → WordPressの管理画面を見やすくする『Admin Column Pro』

カスタマイズした投稿一覧の表示です。

『STORY』というカスタムフィールドの名前について、数値の順に投稿が並んでいます。

カスタムフィールドの数値を使った投稿管理

設定画面。

Admin Column Proの設定画面

投稿数の多いサイト、頻繁に過去記事の整理を行う方には便利なプラグインです。

目次
閉じる