在unctions.php中使用GET_TERMS进行自定义分类

时间:2012-11-21 作者:Madalin

我正在尝试检索分类法项目的名称,并将它们包含到主题管理面板中。

function retrieve_my_terms() {

    global $terms;

    $terms = get_terms(\'taxonomy\');

    foreach ($terms as $term) {
        $option = $term->name;
        return $option;
    }
}
该函数添加在创建自定义帖子类型和分类的函数之后。

据我所知,似乎init 动作发生在主题功能之后。php文件已经包含在内,所以如果我直接在函数文件中查找术语,我会在它们实际注册之前进行查找。

换句话说,直到包含主题函数文件之后,init操作才会启动,因此任何术语检索都必须在init之后进行。

我的问题是,我不知道如何在init之后检索术语。

任何回答都将不胜感激!

非常感谢。马达林

3 个回复
最合适的回答,由SO网友:Mridul Aggarwal 整理而成

您可以在init本身上添加操作,只需增加add_action 呼叫优先级越高,调用函数的时间越晚。

add_action(\'init\', \'retrieve_my_terms\', 9999);

但我的建议是,你应该尽可能晚地做这类事情,最好是在第一次使用之前。有一个动作\'wp_loaded\' 在加载完整的wordpress后调用;准备开始处理输出。这样做可能对你有用。

SO网友:Stephen Harris

没错functions.php 在之前加载init - 大多数帖子类型都将使用该挂钩进行注册。但是,您可以使用后面的挂钩,这将更加合适。

你说你需要访问里面的条款functions.php. 但是你什么时候需要它们?init 在每一个页面加载时(前面和后面)触发,我不认为您的意思是在每一个页面加载时检索术语。有很多钩子可供您使用,它们都在不同的上下文中触发。如果你准确地告诉我们你想用什么术语来决定你应该使用哪个钩子。

(我对将它们包含到主题管理面板中有点困惑)。听起来您可能试图在管理元数据库中输出列表。无论如何,您可以包含一些代码吗?

SO网友:Tom J Nowell

您可以在函数的全局范围内定义函数。php没有问题。

它是using 注册之前的函数,这就是问题所在。而不是在函数中进行操作。php在全局范围内,在挂钩中执行。函数中唯一的东西。应该允许不在挂钩中的php是add_action.

所以把所有东西都挂在挂钩上,然后打电话in a hook/action after 您的帖子类型注册,not before in loose code in the global

结束

相关推荐

WP_SET_POST_TERMS仅将几个术语中的最后一个分配给帖子

我有一个非常简单的设置,在这里我循环遍历一组演员,并为每个演员的名字成功地插入一个术语。然后,我使用wp\\u set\\u post\\u terms将这些术语分配给一篇文章,但这只会将最后一个术语分配给该文章。我不熟悉使用分类法/术语,所以可能有一个明显的解决方案。这是我的代码:foreach ($cast as $actor) { $actor_term_id = wp_insert_term( $actor[name], \'actor\', array(