我正在尝试在函数中获取自定义帖子类型的类别。php,但它不返回任何值,当我在任何主题文件中运行此查询时,它工作正常。这是我的密码
function get_destinations(){
$args = array(
\'type\' => \'accomodation\',
\'child_of\' => 0,
\'parent\' => \'\',
\'orderby\' => \'name\',
\'order\' => \'ASC\',
\'hide_empty\' => 1,
\'hierarchical\' => 1,
\'exclude\' => \'\',
\'include\' => \'\',
\'number\' => \'\',
\'taxonomy\' => \'facilitie\',
\'pad_counts\' => false
);
$categories = get_categories($args);$destinations = array();
foreach ($categories as $cat) {
if($cat->cat_name != \'\'){
$destinations[$cat->cat_name] = $cat->cat_name;
}
}
return $destinations;
}
我正在使用
this 要添加的代码
meta field
, 现在我必须将类别传递给
select
标记为
$my_meta2->addSelect($prefix.\'select_field_id\',get_destinations(),array(\'name\'=> \'Select Destination\'));
原始代码是这样的,它们在数组中传递值。
$my_meta->addSelect($prefix.\'select_field_id\',array(\'selectkey1\'=>\'Select Value1\',\'selectkey2\'=>\'Select Value2\'),array(\'name\'=> \'My select \', \'std\'=> array(\'selectkey2\')));
但没有得到任何价值,任何我错在哪里的想法。谢谢
SO网友:s_ha_dum
您正在使用第三方代码生成这些元框,我不熟悉该代码的工作方式。事实上,根据你的问题,我甚至不确定代码在哪里失败。你对问题的描述不充分。我可以指出,您的代码过于复杂。可以大大简化:
function get_destinations(){
// Using a post type
$args = array(
\'type\' => \'book\',
\'taxonomy\' => \'genre\',
);
$categories = get_terms($args); // changed to get_terms()
if (!is_wp_error()) {
$destinations = wp_list_pluck($categories,\'cat_name\');
/* Convert to key=>value format
I doubt this is actually necessary and can probably be omitted
*/
$destinations = array_combine($destinations,$destinations);
return $destinations;
}
}
var_dump(get_destinations());
删除默认参数。你不需要重复这些使用
get_terms()
因为它返回一个正确的
WP_Error
对象,而不仅仅是其中的一部分(至少在我的安装中,我可能已经破坏了它。我会定期这样做)。无论如何,
get_terms()
makesmore因为您检索的不是“类别”,而是自定义分类法在尝试使用术语结果之前,请先验证它们是否正确
wp_list_pluck()
简化
foreach
至于核心代码,我只看到三个地方可能会失败:
帖子类型错误分类错误类型/分类中没有帖子