gpt4 book ai didi

php - 使用 WordPress 简码添加 <meta> 标签

转载 作者:可可西里 更新时间:2023-11-01 12:32:04 24 4
gpt4 key购买 nike

我正在编写一个使用短代码的简单 WordPress 插件。我希望包含短代码的页面具有特定的 <meta>标签。这可能吗?如果是这样,是否有一种优雅的方式来做到这一点?

我知道我可以添加 <meta>带有 wp_head 的标签钩子(Hook),但我希望元标记内容与插件生成的字符串相匹配。我可以将所有代码移到标题中,但我不确定以后如何从短代码中引用它。换句话说,当我在 <head> 中声明一个变量时使用过滤器,它不适用于我使用短代码调用的类方法。

有什么想法吗?

更新:

提出了一个很好的解决方案,其中短代码的处理函数将操作添加到 wp_head Hook :

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 .

最佳答案

第一次尝试(不要使用这个...请参阅下面的“编辑”):

首先,您需要使用如下内容设置简码:

add_shortcode( 'metashortcode', 'metashortcode_addshortcode' );

然后,您将创建一个函数,在该函数中您必须使用类似的东西向 wp_head 添加一个钩子(Hook):

function metashortcode_addshortcode() {
add_action( 'wp_head', 'metashortcode_setmeta' );
}

然后,您将在 wp_head 中定义要执行的操作:

function metashortcode_setmeta() {
echo '<meta name="key" content="value">';
}

添加短代码 [metashortcode] 应该根据需要添加元数据。提供代码只是为了帮助您了解如何实现它。它没有经过全面测试。

编辑:之前的代码只是一个概念,由于执行顺序而无法工作。这是一个将获得预期结果的工作示例:

// Function to hook to "the_posts" (just edit the two variables)
function metashortcode_mycode( $posts ) {
$shortcode = 'metashortcode';
$callback_function = 'metashortcode_setmeta';

return metashortcode_shortcode_to_wphead( $posts, $shortcode, $callback_function );
}

// To execute when shortcode is found
function metashortcode_setmeta() {
echo '<meta name="key" content="value">';
}

// look for shortcode in the content and apply expected behaviour (don't edit!)
function metashortcode_shortcode_to_wphead( $posts, $shortcode, $callback_function ) {
if ( empty( $posts ) )
return $posts;

$found = false;
foreach ( $posts as $post ) {
if ( stripos( $post->post_content, '[' . $shortcode ) !== false ) {
add_shortcode( $shortcode, '__return_empty_string' );
$found = true;
break;
}
}

if ( $found )
add_action( 'wp_head', $callback_function );

return $posts;
}

// Instead of creating a shortcode, hook to the_posts
add_action( 'the_posts', 'metashortcode_mycode' );

尽情享受吧!

关于php - 使用 WordPress 简码添加 &lt;meta&gt; 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9558211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com