我需要自动(在UI中没有用户可见的任何内容,也没有用户干预)“标记”子博客中的帖子,并将其设置为用户发布时的主题。
据我所知,我必须使用wp_insert_term()
一旦将这个新术语“uses theme”插入到数据库的terms表中。
然后我必须添加一个包含wp_set_post_terms()
(价值为get_current_theme()
), 创建或保存帖子时执行的一些核心功能。
我无法访问核心。php文件,所以我正在寻找某种方法将其添加到functions.php.
如果更容易自动tag 或categorize, 我会这么做的。我只是不知道该怎么做。
UPDATE:我刚刚意识到我在博文元中得到了博客ID。如果我可以从数据库中查找stylesheet\\u目录或类似的“bloginfo”字段,问题就会得到解决。但是我正在查看blogs表,它没有那些bloginfo字段,get\\u bloginfo()只返回关于当前博客的信息。
如果我知道如何从博客id中查找样式表信息,我就到家了!How?
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是隐藏的。)