WordPressで複数の記事を呼び出すとき、デフォルトの新着順ではなく別の並びに呼び出すことが多々あります。
カスタムフィールドやプラグインの値など orderby の指定が複雑になりがち。サイドバーやフロントページなどいろいろな箇所で同じ指定をするのは結構大変なので、orderby で指定できる値をカスタマイズしちゃいます。
1 2 3 4 5 6 7 8 9 10 |
if(!function_exists('add_orderby')){ function add_orderby( $query ) { // orderby で reccomoend が指定されたら、カスタムフィールドの views と更新日時で降順で呼び出す if( $query->query_vars['orderby'] === 'recommend') { $query->set('meta_key', 'views'); $query->set('orderby', array('meta_value_num' => 'DESC', 'date' => 'DESC') ); } } add_action('pre_get_posts', 'add_orderby'); } |
呼び出す度にごりごり書いていたソート順の指定がスッキリします( ゚Д゚)ノ
何か一言あれば!!
質問とかツッコミとかお気軽にコメントしてください。がんばって返します。