自定义WordPress POST循环-隐藏IFRAME内容

时间:2017-01-22 作者:Robert Zelenka

我正在尝试创建一个自定义循环,以不同的样式显示我的帖子。

在我的帖子中,我主要有Youtube视频和一些文字。在我的帖子循环中,我只需要显示帖子和文本的特征图像的缩略图,但我不想在Youtube视频中显示任何iFrame。

我在寻找解决方案,我发现了这个-Display only text to WordPress loop without loosing the text formatting - 它应该删除iFrame和图像,这对我来说很好,但我有多个帖子循环,所以我真的不想影响the_content() 函数,因为如果您理解我的问题,它在我的主题中的许多不同循环中使用。我不是一个真正的程序员,所以这对我来说很难。

edit 1 我已将您的代码添加到函数中。php,但什么都没有发生。以下是我在模板中的代码:

<?php 
    global $post; 
    $args = array(\'orderby\' => \'rand\', \'posts_per_page\' => 1,); 

    $custom_posts = get_posts($args); foreach($custom_posts as $post) : setup_postdata($post); ?>

    <div class="hpvybirame">
    <div <?php post_class(); ?> id="post-<?php the_ID(); ?>">
    <h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>

    <?php show_only_thumbnails($content); ?>
    <?php echo get_the_post_thumbnail($thumbnail->ID, \'vlog-lay-c\'); ?>
    </div>
    </div>
    <? endforeach; ?>

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

最好的解决方案是在函数中添加过滤器。php:

add_filter(\'the_content\',\'show_only_thumbnails\',99);

function show_only_thumbnails($content){
    if(is_home() && is_front_page()){
     //quote from :
     //http://wordpress.stackexchange.com/questions/218305/display-only-text-to-wordpress-loop-without-loosing-the-text-formatting/218314#218314
     $content = preg_replace(\'/<iframe.*?>/\', "", $content); // removes iframes
      return $content;
    }
   return $content;
}

SO网友:Tunji

我相信您应该能够使用is_main_query 函数和内容筛选器。

这个is_main_query 检查当前查询是循环中的主查询还是次查询。

function wpse253491_strip( $content ) {
    if ( is_home() || is_front_page() && !is_main_query() ) {
        $content = preg_replace(\'#<\\s*iframe[^>]*>.*?<\\s*/\\s*iframe>#msi\', \'\', $content);
    }
    return $content;
}

add_filter( \'the_content\', \'wpdocs_remove_shortcode_from_index\' );

相关推荐

Last post in loop when even

我使用这段代码尝试检查每个页面上的最后一篇文章循环是否均匀,以便添加不同的类。这可以检查它是否是最后一篇文章:( ( 1 == $wp_query->current_post + 1 ) == $wp_query->post_count ) 这可以检查它是否是一个均匀的帖子( $wp_query->current_post % 2 == 0 ) 但这并没有检查这是否是最后一篇文章,甚至。 ( ( 1 == $wp_query->current_post + 1