Wrap php in shortcode

时间:2013-08-20 作者:Mac Mendoza

我正在使用一个插件,该插件将根据用户位置显示内容,我正在尝试将其添加到facebook小部件代码中。该插件使用了一个短代码来包装将要显示的内容,下面是我到目前为止的内容。我知道我做错了什么,如果你能给我指出正确的方向,我将不胜感激。

if (($user_id) and ($app_id) and ($secret_code)){
    $user_data = get_option(\'wt_recent_fb_posts_user\');

    echo do_shortcode (\'[wpgc_is_city city="Morrisville"]\');

    if ((!$user_data) OR ($user_data[0]->id !== $user_id)){
        $user_data = $this -> fetch_userdata($user_id);             
    }               

    $fb_posts = get_transient(\'wt_recent_fb_posts\');                
    if (!$fb_posts){ //no messages, fetch from facebook             
        $fb_posts = $this->fetch_fbposts($user_id, $post_count, $app_id, $secret_code);             
    } else {
        $fb_posts = get_transient( \'wt_recent_fb_posts\' );                  
    }

    if(isset($user_data[0]->name)){
        echo "<div class=\'user\'><h3><a href=\'".$user_data[0]->url."\' target=\'_blank\'>".$user_data[0]->name."</a></h3></div>";
    } else {
        echo "<div class=\'user\'>Facebook</div>";
    }

    echo "<div class=\'fb-posts-list\'><ul class=\'slides\'>";

    foreach ($fb_posts as $fb_post) {
        echo "<li>";
        echo "<div class=\'message\'>".$fb_post->message."</div>";
        $created_time = $fb_post->created_time;
        $time_ago = sprintf(__(\'%s ago\', \'wellthemes\'), human_time_diff(strtotime($created_time))); 
        echo "<div class=\'time\'>".$time_ago."</div>";                                   
        echo "</li>";
    }
    echo "</ul></div><div class=\'fb-posts-nav\'></div>"; 
    echo do_shortcode(\'[/wpgc_is_city]\');
}

2 个回复
SO网友:epilektric

From Codex Shortcode Examples

// 如果有打开和关闭短代码
echo do\\u shortcode(“[iscorrect]”。$text\\u to\\u be\\u wrapped\\u in\\u shortcode。“[/iscorrect]”);

基本上,你不能使用do_shortcode() 由一对标记组成的一个短码的两个独立时间。

在代码中,您需要将输出保存到变量中,而不是使用echo. 然后在最后像示例一样将其包装在短代码中。

SO网友:Mac Mendoza

感谢所有回复。。实际上,我删除了[短代码]内容,只使用了短代码本身的功能。

像这样的。。

$location = shortcode_city($atts, $content=\'\');
if ($user_loc1 == $location){
// Code here
}
再次感谢各位!

结束

相关推荐

shortcode for logo image

我有以下代码用于使用短代码图像显示图像,但短代码是[image name=logo] 从名为logo的/uploads/目录加载图像。巴布亚新几内亚;更改名称,我可以像狗一样加载不同的图像。png项目符号。png等。名称后写入=名称文件。所以我的问题是如何让函数在短代码上编写[logo] 我可以得到图像标志。巴布亚新几内亚function image_shortcode($atts, $content = null) { extract( shortcode_atts( array(