超级简单的短码不起作用

时间:2014-02-11 作者:wickywills

一直在这里和其他地方查看各种教程和答案,但无法实现这一点。只是尝试如下所示显示来自短代码的简单输出,但它只是将实际的短代码标记输出到页面,而不是来自短代码的内容

Functions.php

<?php 
function welcome_roundels_func(){
    return "testing";
}
add_shortcode( \'welcome_roundels\', \'welcome_roundels_func\' );
?>

add_action( \'init\', \'register_shortcodes\');

Usage

[welcome_roundels]
要启用短代码,我还需要做些什么吗?或者上述操作是否应该起作用?

Edit我还使用以下代码输出内容

$welcomePage = get_post( 5 ); 
echo $welcomePage -> post_content;

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

您的问题在于:

$welcomePage = get_post( 5 ); 
echo $welcomePage -> post_content;
短代码在显示时由via a filter on the_content which is called by the function the_content(). 您绕过了该功能echo正在初始化原始post数据。

您需要使用proper Loopexplicitly process the shortcode.

echo do_shortcode($welcomePage -> post_content);

结束

相关推荐

快捷代码返回$CONTENT与DO_SHORTCODE($CONTENT)

我想我问题的标题说明了一切。在创建短代码时,我见过一些人这样做do_shortcode($content) 而不是$content.有什么区别?另一件事,假设我有一个短代码[hello]World[/hello]. 不会再回来了do_shortcode($content) 导致do_shortcode(\'World\')?根据法典,给出的示例如下:,do_shortcode(\'[hello]\')那么,什么会回来呢do_shortcode($content) 解释(如果是[hello])如有任何实例或