web-dev-qa-db-ja.com

カスタムメタによるarchive.phpのフィルタリング

カスタムメタクエリでアーカイブページをフィルタしようとしています。

ループの前にquery_posts($args)を使ってみましたが、何も返されません。何か案は?

これが私がこれまでに持っているものです:

<?php 
        //$wolfName = $_GET['wolfName'];
        $archiveArgs = array(
                        'meta_key'  => 'wolf',
                        'meta_value'    => 'boltz'
                        );
        query_posts($archiveArgs);
        ?>
        <?php if (have_posts()) : ?>

投稿はありません。

3
Troy

pre_get_postsアクションフックを使う

function archive_meta_query( $query ) {
    if ( $query->is_archive){
      $query->query_vars["meta_key"] = 'wolf';
      $query->query_vars["meta_value"] = 'boltz';
    }
}
add_action( 'pre_get_posts', 'archive_meta_query', 1 );
7
Strik3r

あなたのコードのおかげでStrik3r ..これは私を大いに助けました。

function sort_meta_query( $query ) {
 if ( $query->is_archive || $query->is_category || $query->is_home ){
  $query->query_vars["meta_key"] = 'fastest_speed_experienced';
  $query->query_vars["orderby"] = 'meta_value_num';
 }
}
  add_action( 'pre_get_posts', 'sort_meta_query', 1 );
0
user2671457