我有两种分类法:“指南类型”和“工具”。
它们看起来像这样:
Type of guide
- Article
- Video
- Cheat sheet
Tool
— 学习管理系统
测验工具
- Hide a grades column (article)
- Creating a Gradebook (article)
- Long Answer Question Steps (article)
- Matching Questions (article)
- True or False (article)
- Using the Quiz Tool (video)
- Using the Quiz Tool (cheat sheet)
通知工具
该屏幕截图完美地概括了这个问题:我需要将税务查询限制为只包括标有“测验工具”的项目。
屏幕:http://cl.ly/0t3J143q0A1X2w2y2X2n
我正在尝试使用tax\\u查询,使用AND关系:
$args = array(
\'tax_query\' => array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'guide-type\',
\'field\' => \'slug\',
\'terms\' => \'video\'
),
array(
\'taxonomy\' => \'tool\',
\'field\' => \'slug\',
\'terms\' => what do I put here to get the current tool (Quiz tool)?
)
)
);
$query = new WP_Query( $args );
但我就是想不出如何限制只列出标有“测验工具”的项目。注意“我在这里放什么”部分。
感谢您的帮助。
更新时间:
我突然想到,我不必同时查询这两种分类法,而是退出tax\\u查询并使用“get\\u the\\u category()”作为$参数的一部分:
// The Query
$args = array(
\'tax_query\' => array(
array(
\'taxonomy\' => \'guide-type\',
\'field\' => \'slug\',
\'terms\' => \'self-paced \'
)
),
\'category_name\' => get_the_category()
像这样的?有什么想法可以限制“category\\u name”为我当前正在查看的名称(测验工具)。
特里
最合适的回答,由SO网友:Stephen Harris 整理而成
此helper函数将返回当前查看的术语的ID(从任何分类法-您可以仅限于特定分类法或内置标记和类别分类法)。
如果您不在分类术语存档页上,则返回false。
function wpse52578_get_current_term_id(){
if( !is_tax() && !is_tag() && !is_category() )
return false;
//If we got this far we are on a taxonomy-term page
// (or a tag-term or category-term page)
$taxonomy = get_query_var( \'taxonomy\' );
$queried_object = get_queried_object();
$term_id = (int) $queried_object->term_id;
return $term_id;
}
然后可以执行以下操作:
$tool_term_id = wpse52578_get_current_term_id();
$tax_query = array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'guide-type\',
\'field\' => \'slug\',
\'terms\' => \'video\'
));
if( $tool_term_id ){
$tax_query[] = array(
\'taxonomy\' => \'tool\',
\'field\' => \'id\',
\'terms\' => $tool_term_id
)
}
$args = array(\'tax_query\' => $tax_query);
$query = new WP_Query( $args );
注意:我没有测试过这个
SO网友:saltcod
另一种方法是使用get_the_terms()
要了解您所在的纳税条款页面,请将其传递给tax_query
.
// Get an array of current terms, use the last one returned
$terms = get_the_terms( $post->ID, \'tool\' );
if ( $terms && ! is_wp_error( $terms ) ) {
$current_tax_terms = array();
foreach ( $terms as $term ) {
$current_tax_terms[] = $term->name;
}
//Use end to give me just the last term
$current_term = end($current_tax_terms);
}
现在我可以通过了
$current_term
进入my tax\\u查询:
$args = array(
\'tax_query\' => array(
array(
\'taxonomy\' => \'guide-type\',
\'field\' => \'slug\',
\'terms\' => \'self-paced\'
),
array(
\'taxonomy\' => \'tool\',
\'field\' => \'slug\',
\'terms\' => $current_term
)
),
\'author_name\' => \'saltcod\'
);
$query = new WP_Query( $args );
$the_query = new WP_Query( $args );
我返回数组中的最后一项,因为这是我所在的税务页面。可以从所需数组中的任何位置返回值。我碰巧想要最后一个,所以用过了
end(array)
.