快捷码功能不起作用

时间:2013-01-28 作者:Lucas Fernandes

我得到这段代码是为了在我的博客页面上显示我的缩略图图像和视频,但当我尝试在另一个页面上显示缩略图时,它不起作用。

显示图像和视频的功能拇指

function show_blog_posts() {
global $post, $blog, $posts;
$first_vid = \'\';
ob_start();
ob_end_clean();
$output = preg_match_all(\'/<iframe.+src=[\\\'"]([^\\\'"]+)[\\\'"].*>/i\', $post->post_content, $matches);
$first_vid = $matches [1] [0];

if ($output == \'1\') {
    echo \'<iframe width="100%" height="400" src="\';
    echo $first_vid;
    echo \'" frameborder="0" allowfullscreen></iframe>\';
} else { ?>
            <?php the_post_thumbnail(\'large\');?>
我的短代码

add_shortcode(\'recent_blog_posts\', \'shortcode_recent_blog_posts\');

function shortcode_recent_blog_posts($atts) {

        $str = \'\';
        $args = array( \'numberposts\' => 3, \'post_status\'=>"publish",\'post_type\'=>"post",\'orderby\'=>"post_date");
        $postslist = get_posts( $args );

        foreach ($postslist as $post) : setup_postdata($post); 
            $str .= \'<div id ="article-section-box2" class="span3">\';
                            $str .= \'<div id= "image1" class="image-arcticle">\';     
                            $str .= show_blog_posts($post->ID, \'\');
                            $str .= \'</div>\'; 
                            $str .=\'<p class="article_text">\'.excerpt(18).\'</p>\';
                            $str .=\'</div>\';
        endforeach; 

        return $str;
有什么问题吗?谢谢

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

你通过了show_blog_posts 两个参数。。。

$str .= show_blog_posts($post->ID, \'\');
。。。但你已经定义为不接受任何。。。

function show_blog_posts() {
您的两个代码块之间似乎存在一些断开连接。我建议通过$post 以您尝试的方式反对。

function show_blog_posts($post = NULL) {
    global $blog, $posts;
    if (empty($post)) {
        global $post;
    }
    // the rest of your function
不知道第二个参数应该是什么。

结束

相关推荐

Get URL from shortcode tag

我正在运行一个wordpress站点,我需要正确的regex语法来从\\u content()中返回的一些短代码中获取URL。当我使用\\u content()时,它将返回如下内容:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam nulla enim, euismod ut pharetra nec, commodo a augue. Etiam sit amet nibh mauris, eu ornare purus. V