我在黑暗中拍照,这里。
我首先要看的是您的register\\u分类调用。您应该确保不要将query\\u var选项设置为false。
register_taxonomy(
\'speakers\',
array(\'post\'),
array(
\'rewrite\' => array( \'slug\' => \'media-channel\' ),
\'public\' => true,
\'query_var\' => \'speakers\',
)
)
有了它,您可以确定可以使用get\\u posts测试查询。此测试如下所示:
$test_results = get_posts( array(
\'post_type\' => \'post\',
\'numberposts\' => -1,
\'speakers\' => 4,
) );
你得到结果了吗?在查看您的示例时,我强烈怀疑您的分类法可能与附件相关。如果是这种情况,我必须添加“post\\u status”=>“inherit”。
$test_results = get_posts( array(
\'post_status\' => \'inherit\',
\'post_type\' => \'attachment\',
\'numberposts\' => -1,
\'speakers\' => 4,
) );
你觉得这个怎么样?如果您在这里得到结果,那么可能是查询参数或重写规则出了问题。
法典register_taxonomy 引用如果使用“rewrite”参数,则需要刷新重写规则。
global $wp_rewrite;
$wp_rewrite->flush_rules();
现在您已经相当确定您从这个查询中获得了结果,您可以检查WordPress正在内部构建的查询。这可以使用优秀的插件“Debug This”或使用:
global $wp_query;
print_r($wp_query->query_vars);
这将显示WordPress使用“”speakers=4“”构造的查询。