【发布时间】:2012-03-22 10:14:44
【问题描述】:
我正在编写一个使用简码的简单 WordPress 插件。我希望包含短代码的页面具有特定的 <meta> 标签。这可能吗?如果是这样,有没有一种优雅的方式来做到这一点?
我知道我可以使用wp_head 钩子添加<meta> 标签,但我希望元标签内容与插件生成的字符串相匹配。我可以将所有代码移到标题中,但是我不确定以后如何从短代码中引用它。换句话说,当我使用过滤器在<head> 中声明一个变量时,它不适用于我使用简码调用的类方法。
有什么想法吗?
更新:
提出了一个很好的解决方案,其中短代码的处理函数将操作添加到 wp_head 挂钩:
add_shortcode('fakeshortcode', 'fakeshortcode_handler');
function fakeshortcode_handler() {
function add_meta_tags() {
//echo stuff here that will go in the head
}
add_action('wp_head', 'add_meta_tags');
}
这很好,但问题是 wp_head 发生在短代码被解析并添加操作之前(所以没有任何东西被添加到上面的代码中)。为了让它发挥作用,我借用了this post 中的解决方案。它基本上是一个“向前看”帖子的功能,看看是否有任何短代码出现。如果是,则 IT 添加add_action('wp_head'...。
编辑: 我删除了关于如何传递变量的后续问题。 这是一个新问题here。
【问题讨论】: