web-dev-qa-db-ja.com

アーカイブページのメタキーで並べ替え

私はアーカイブキーページをメタキーの値を使ってソートしようとしています(これはたまたまUnixのタイムスタンプです)。現在私は彼らのWordPress作成日によってページにリストされた投稿を持っています。メタキーを使用したいのですが、これはWPの作成日とは異なる日付です。

この時点でのコードは非常に単純です。テンプレートを使用して投稿を表示するためにThe Loopを使用しています。

<?php

while (have_posts()) : the_post();


Template code here


endwhile;

?>

投稿をWP作成日ではなくメタ値の日付で表示するにはどうすればよいですか。

1
Moose

実行前にメインクエリを変更するには、 pre_get_posts を使用します。アクションはすべてのクエリに対して実行されます。特定のクエリをターゲットにするには、 条件タグ を使用します。

function wpd_sort_by_meta( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'meta_key', 'your_meta_key' );
        $query->set( 'orderby', 'meta_value_num' );
    }
}
add_action( 'pre_get_posts', 'wpd_sort_by_meta' );
4
Milo