所以我有一个自定义的Wordpresswp_query
内循环taxonomy.php
显示所有自定义帖子类型的帖子,按自定义元字段排序(start_date
). 在此模板中,我有指向使用相同页面模板的每个分类法子级的链接。This does not work 使用我的循环代码,如下所示。
我希望这个循环能够检测当前的分类法,并仅显示该分类法中的帖子。例如,我的设置如下:
主题(分类名称)诗歌政治环境等http://example.com/themes
我想显示此分类法中的所有帖子,但当您访问http://example.com/themes/poetry
例如,我只想显示诗歌帖子。
Here\'s my loop:
$today = date(\'Ymd\');
$term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) );
$args = array (
\'post_type\' => \'whatson\',
\'meta_query\' => array(
array(
\'key\' => \'start_date\',
\'compare\' => \'>=\',
\'value\' => $today,
)
),
\'tax_query\' => array(
array(
\'taxonomy\' => $term->name,
\'field\' => $term->slug
),
),
\'meta_key\' => \'start_date\',
\'orderby\' => \'meta_value\',
\'order\' => \'ASC\',
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post();
此代码会破坏模板,当我打印查询以查看返回的内容时,会得到以下结果:
Array (
[post_type] => whatson
[meta_query] => Array ( [0] => Array ( [key] => start_date [compare] => >= [value] => 20170213 ) )
[tax_query] => Array ( [0] => Array ( [taxonomy] => Politics [field] => politics ) )
[meta_key] => start_date
[orderby] => meta_value
[order] => ASC
)
最合适的回答,由SO网友:AddWeb Solution Pvt Ltd 整理而成
从上面的查询中,似乎您在查询的tax\\u查询中传递了错误的参数。
应如下所示:
\'tax_query\' => array(
array(
\'taxonomy\' => \'Themes\', //Your custom taxonomy slug
\'field\' => \'slug\', // this should be field name, not field value
\'terms\' => array(\'environment\'),
\'include_children\' => true,
\'operator\' => \'IN\'
),
),
希望这对你有帮助。