我想获得分类法“类型”中所有“带”的数组,然后在其他函数等中使用该数组utilities.php
文件,我require()
在里面functions.php
它有以下函数定义,并在之后立即调用:
function get_all_bands()
{
$bands = get_posts(array(
\'post_type\' => \'model\',
\'posts_per_page\' => -1,
// Includes the bands
// NOTE: this wont work if this function is called from functions.php
// which I need to do.
\'tax_query\' => array(
array(
\'taxonomy\' => \'types\',
\'field\' => \'slug\',
\'terms\' => \'band\',
\'operator\' => \'IN\'
)
)
));
return $bands;
}
print_r(get_all_bands())
如果我
print_r(get_all_bands())
在模板中,如
header.php
,
page.php
, 或者一般来说,任何负责显示内容的模板,都可以正常工作。但如果我
print_r(get_all_bands())
在里面
functions.php
它返回一个空数组,所以我不能在任何东西上使用它。
没有tax_query
它可以在任何地方工作:
// This works
function get_all_bands()
{
$bands = get_posts(array(
\'post_type\' => \'model\',
\'posts_per_page\' => -1
));
return $bands;
}
print_r(get_all_bands())
我还尝试添加
global $post
但它什么也没做。
编辑:明确定义和调用函数的位置。
SO网友:David Gard
用于您的functions.php
文件,试试这个-
add_action(\'init\', \'my_test_get_all_bands\', 99);
function my_test_get_all_bands(){
echo \'<pre>\'; print_r(get_all_bands()); echo \'<pre>\';
}
正如我试图在对你的问题的评论中所说的(以及
Pieter Goosen 如果您的分类法尚未注册
tax_query
您的
get_all_bands()
函数不能作为分类法使用
types
不存在。
我不知道您是如何添加分类法的,但我个人使用init
挂钩优先级为1
, 这就是为什么我优先考虑99
在本例中。
不过,它的长与短之处在于,您的函数是有效的,通过在模板中使用它,您已经证明了这一点:)
希望这有帮助。