Set 3 iframes in a row

时间:2017-07-12 作者:Nora McDougall-Collins

场景:我继承了一个使用论文主题的WordPress网站。我安装了内容块,用于填充右侧边栏。我有一个函数,可以随机选取图书类别中的三篇文章摘录。这些摘录包含了从Amazon上预订列表的iFrame。com。查看时间http://thebakingwizard.com/

问题:帖子是根据需要随机选取的,但iFrame在函数的层结构之外。

到目前为止我所做的:

我知道iframe不应该在段落标记中,所以我使用了remove\\u filter(\'the\\u extract\',\'wpautop\');删除内容块自动创建的段落标记。这并没有改变情况我需要将iFrame放在div内,以便将它们排成一行。

功能

function RandomBook() 
{ 
$args = array(
\'post_type\' => \'post\',
\'orderby\'   => \'rand\',
\'posts_per_page\' => 3,
\'category_name\' => \'Books\',
);

$the_query = new WP_Query( $args );

if ( $the_query->have_posts() ) {

$string .= \'<div id="AmazonListings">\';
while ( $the_query->have_posts() ) 
{
    $the_query->the_post();
    $BookExcerpt = the_excerpt();
    $string .= \'<div class="BookExcerpt">\'.$BookExcerpt.\'</div>\';
} // end while
$string .= \'</div><!-- end Amazon book listings -->\';
/* Restore original Post Data */
wp_reset_postdata();
} else {

$string .= \'no posts found\';
} // 5/23/17 Nora added */

return $string; 
} /* End Random post code from http://www.wpbeginner.com/wp-tutorials/how-to-display-random-posts-in-wordpress/<br />
 5/11/17 Nora added  */

add_shortcode(\'RandomBook\',\'RandomBook\');
add_filter(\'widget_text\', \'do_shortcode\'); 

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

问题是您正在使用the_excerpt(). 此函数立即打印摘录,不返回字符串。

从核心:

/**
 * Display the post excerpt.
 *
 * @since 0.71
 */
function the_excerpt() {

    /**
     * Filters the displayed post excerpt.
     *
     * @since 0.71
     *
     * @see get_the_excerpt()
     *
     * @param string $post_excerpt The post excerpt.
     */
    echo apply_filters( \'the_excerpt\', get_the_excerpt() );
}
所以你需要绕过echo 通过使用apply_filters( \'the_excerpt\', get_the_excerpt() ) 而不是the_excerpt(), 然后得到所需的字符串,iframe应该位于它们所属的位置。

结束