我想在同一个页面模板中多次使用以下代码,但是当涉及到代码行时,模板会变得太大,因此会变大。每次使用它时,我只更改一个参数,99%保持不变。我更改的参数为\'terms\'=>\'pop\'
. 我知道我可以用一段相对较小的代码显示所有帖子和所有分类术语(每个分类下的分类术语帖子),但这不会像我想要的那样工作,因为我想以自定义方式排序分类,而不是按标题或术语(ASC/DSC)。我想的是可能会将代码添加到一个函数中,每次调用该函数时,我只传递发生变化的参数。
代码:
$query = new WP_Query( array(
\'post_type\' => \'stations\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'orderby\' => \'title\',
\'order\' => \'ASC\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'genres\',
\'field\' => \'name\',
\'terms\' => \'pop\' // THIS IS WHAT CHANGES
)
)
) );
最合适的回答,由SO网友:david_nash 整理而成
要扩展Global的答案,请执行以下操作:
将此粘贴到主题的功能中。php:
function get_stations_query( $terms ) {
//create new query object
$query = new WP_Query( array(
\'post_type\' => \'stations\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'orderby\' => \'title\',
\'order\' => \'ASC\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'genres\',
\'field\' => \'name\',
\'terms\' => $terms
)
)
) );
return $query; //return the object
}
然后在模板文件中可以使用:
$query = get_stations_query(\'pop\');