管理页面中的DO_SHORT CODE()

时间:2012-08-11 作者:dcolumbus

我正在使用一些有短代码的插件。。。然而,我没有为内容创建公共页面,而是使用add_menu_page 我需要知道如何利用do_shortcode() 在这种情况下。

就目前情况而言,所有函数都会抛出字符串。我假设这是因为管理页面中没有shortcode API。

我该怎么解决这个问题?我找不到解释如何在WP管理中使用短代码的文档。。。或者如果可能的话。

具体来说,我正试图在WP管理员中使用WooCommerce短代码。我讨厌插件没有利用WP后端进行帐户/用户管理。

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

而不是打电话do_shortcode() 只需调用与短代码关联的函数。

示例

有一个名为[example] 和注册为短代码处理程序的函数:

function example_shortcode( $atts = array(), $content = \'\' )
{
    extract( 
            shortcode_atts( 
            array (
            \'before\' => \'\',
            \'after\' => \'\',
            ), 
            $atts 
       )
   );

    return $before . $content . $after;
}
add_shortcode( \'example\', \'example_shortcode\' );
在管理页面中,只需调用以下函数:

echo example_shortcode( 
    array ( \'before\' => \'This \', \'after\' => \'!\' ), 
    \'works\' 
);
输出:This works!.

do_shortcode().

SO网友:TheDeadMedic

管理中似乎提供了短代码API,但其输出将取决于所讨论的短代码标记。

内置的[caption] 按预期工作,但[embed] 不会(这是由于嵌入API如何“延迟加载”其短代码,并且取决于the_content 过滤器要运行,因此从技术上讲不是shortcode API的错误)。

Conclusion: 这完全取决于;标记注册的时间,以及执行时的行为/假设。

@Dcloumbus在你的案例中我们谈论的是哪个标签?

结束

相关推荐

If else with shortcodes

如果自定义字段值为true,我只希望显示其中一个短代码。我不理解这样做的逻辑。所以基本上,如果有twitch视频和自己的3D视频,我只想显示顶部的视频(twitch)。等等等等。这是否超出了if-else语句?我正在将此代码添加到我的模板中。php文件。我的第二个问题是,使用switch方法会更好吗?<?php $twitch = get_post_meta( $post->ID, \'twitch\', $single = true ); $own3d = get_post_