管理员页面中的do_shortcode()


14

我正在使用一些带有短代码的插件...但是,不是在内容上创建公共页面,而是在admin内部使用创建了一些新页面add_menu_page,我需要知道如何do_shortcode()在此上下文中使用。

就目前而言,所有函数都会吐出字符串。我认为这是因为在管理员页面中无法使用shortcode API。

我该如何解决?我找不到任何文档可以解释如何在WP Admin中使用短代码...或者甚至可以使用。


具体来说,我正在尝试在WP Admin中利用WooCommerce简码。我讨厌插件不使用WP Backend进行帐户/用户管理的事实。


谁来决定“我没有做任何研究”并给我负面评分而未加评论是极其无益的。
dcolumbus

1
我猜您可能会说简码是针对前端内容的...您是否要使用另一个插件来为自己的插件管理页面生成内容?
达米安

我同意@dcolumbus。最近,我看到了一些虚假的投票,当然比过去记得的更多。海事组织,这是一个诚实的问题,所以我目前在回答一个问题;)
TheDeadMedic 2012年

如果创建了管理页面,则可以指定输出-为什么需要/想要使用do_shortcode()。你能举个例子吗?
史蒂芬·哈里斯

特别是我正在尝试利用WooCommerce简码。用户管理和帐户管理页面。
dcolumbus

Answers:


10

除了调用之外,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()


1
我什至没有想到这一点!再说一次,我从来没有在管理员中使用过短代码(无论出于何种原因),并且没有借口进行调查;)
TheDeadMedic 2012年

我不知道为什么我也没有想到这一点...我将尝试一下并进行报告!
dcolumbus

这样做的一个缺点是,如果插件作者将来重构短代码的回调函数,它将中断。对短代码本身的更改可能是向后兼容的,但插件内部函数名称的可能性较小。
伊恩·邓恩2012年

2

看来简码API 在管理使用,但它的输出将取决于有关的简码标签。

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

结论:这完全取决于标记的注册方式和时间以及执行时的功能/假定。

@dcolumbus在您的情况下,我们在谈论哪个标签?


1
另外,某些标签将期望get_the_ID()返回帖子ID。
史蒂芬·哈里斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.