是否未正确显示插入到文本区域中的快捷代码

时间:2013-03-07 作者:NW Tech

在仪表板中,我使用textarea获取用户输入。我希望他们能够在文本区域的任何地方使用短代码。

以下是我当前的功能:

function slp_getwelcome() {                 
    $slp_welcome = get_option(\'slp_welcome\');   
    $slp_welcome_sc = do_shortcode( $slp_welcome );

    return $slp_welcome_sc;     
}
这部分起作用。

如果文本区域中有此文本:

Lorem ipsum dolor sit amet,Concetetur[地点]adipiscing Elite。不要坐在埃米特广场上。

上述功能输出:

Abbott、CALorem ipsum dolor sit amet、Concetetur adipiscing Elite。不要坐在埃米特广场上。

其中,“Abbott,CA”是[location] 短代码。因此调用了shortcode,但它会在textarea内容的开头返回。

我怎样才能解决这个问题?

以下是短代码逻辑:

function get_location() { 
    global $post;
    $location = strip_tags( get_the_term_list( $wp_query->post->ID, \'locations\', \'\', \', \', \'\' ) );
    echo $location; 
} 
add_shortcode(\'location\', \'get_location\');
尽管使用了return:

function get_service() { 
    $servive = single_post_title() ;
    return $service;
} 
add_shortcode(\'service\', \'get_service\');

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

你应该是returning$位置自get_location, 而不是echo正在删除它。您的函数当前会在运行时立即回显位置,从而在复制其余部分之前输出结果。

SO网友:montrealist

尝试返回您的值,而不是重复它。

function hello() {
    return \'{foobar}\';
}

add_shortcode(\'hw\', \'hello\');

结束

相关推荐

Using shortcodes in PHP

我试图在我的页面中使用短代码,我从一个简单的测试开始。在里面functions.php:function HelloWorldShortcode() { return \'<p>Hello World!</p>\'; } add_shortcode(\'helloworld\', \'HelloWorldShortcode\'); 在中index.php:[helloworld] 这不会产生<p>Hello World