修改unctions.php以在POST保存时添加设置为主题名称的术语‘USES-Theme’

时间:2012-12-20 作者:Henrik Erlandsson

我需要自动(在UI中没有用户可见的任何内容,也没有用户干预)“标记”子博客中的帖子,并将其设置为用户发布时的主题。

据我所知,我必须使用wp_insert_term() 一旦将这个新术语“uses theme”插入到数据库的terms表中。

然后我必须添加一个包含wp_set_post_terms() (价值为get_current_theme()), 创建或保存帖子时执行的一些核心功能。

我无法访问核心。php文件,所以我正在寻找某种方法将其添加到functions.php.

如果更容易自动tagcategorize, 我会这么做的。我只是不知道该怎么做。

UPDATE:我刚刚意识到我在博文元中得到了博客ID。如果我可以从数据库中查找stylesheet\\u目录或类似的“bloginfo”字段,问题就会得到解决。但是我正在查看blogs表,它没有那些bloginfo字段,get\\u bloginfo()只返回关于当前博客的信息。

如果我知道如何从博客id中查找样式表信息,我就到家了!How?

1 个回复
SO网友:Chip Bennett

我会创造custom post meta 对于这些数据来说,这似乎是最符合逻辑的。它应该很容易实现,因为您不需要向UI公开这个自定义元数据;只需将回调添加到save_post.

您可以使用wp_get_theme() 检索有关当前主题的信息。此函数返回WP_Theme 对象

function wpse76752_add_post_meta() {
    global $post;
    $current_theme = wp_get_theme();
    update_post_meta( $post->ID, \'_current_theme\', $current_theme->Name );
}
add_action( \'save_post\', \'wpse76752_add_post_meta\' );
注意,我在自定义post元键的前面加了一个下划线。这可以防止元键在编辑帖子屏幕的“自定义字段”下拉列表中列出。(基本上,它使其成为一个“内部”post元键,除非您显式公开它,否则它对UI是隐藏的。)

结束

相关推荐

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

我正在尝试检索分类法项目的名称,并将它们包含到主题管理面板中。 function retrieve_my_terms() { global $terms; $terms = get_terms(\'taxonomy\'); foreach ($terms as $term) { $option = $term->name; return $option;