如何在档案页面摘录中以短码形式获取_POST_META

时间:2015-03-30 作者:mistertaylor

我有一个短代码[foo],它在自定义字段中显示值。然而,由于它出现在每篇文章的顶部,因此它包含在摘录中。

function foo_shortcode(){
    global $post;
    $foo = get_post_meta( $post->ID, \'foo\', true );
    return $foo;
}
add_shortcode( \'foo\', \'foo_shortcode\' );
短代码可以在单个帖子上成功运行,但不能在存档上运行。

我错过了什么?

1 个回复
SO网友:s_ha_dum

这个do_shortcode 函数在上运行the_content 挂钩:

402   
403   add_filter(\'the_content\', \'do_shortcode\', 11); // AFTER wpautop()

https://core.trac.wordpress.org/browser/tags/4.1.1/src/wp-includes/shortcodes.php#L403

因此,在没有看到主题代码的情况下,我猜主题的归档页面是这样编写的do_shortcode 函数不启动--可能是因为它使用the_excerpt 而不是the_content. 如果是这种情况,可以使用以下命令强制处理短代码:

add_filter(\'the_excerpt\', \'do_shortcode\');
但是,您需要注意这一点,因为某些短代码可能会生成您不希望在摘录中看到的内容。

结束

相关推荐

Multiple level shortcodes

我正在开发一个插件,遇到了一种情况,我希望有人能帮我找到一个解决方案。我想要一个短代码结构,如:[shortcode_1] [shortcode_2] [shortcode_3] [shortcode_4][/shortcode_4] [/shortcode_3] [/shortcode_2] [/shortcode_1] 但如果我使用add\\u短代码,只有第一个短代码有效。。。有没有办法得到这样的短代码结构?谢谢