显示_POST()的修剪版本

时间:2014-02-04 作者:MF1

我正在使用以下代码在一个页面上显示页面,并希望将此显示器上每个页面的内容修剪为50个单词,并包括附加到页面的图像。我该怎么做呢?

  $args = array(
            \'post_type\' => \'page\',
            \'post_parent\' => \'6\',
            \'order\'=> \'DESC\'

            );
            query_posts($args);
            while ( have_posts() ) : the_post(); 

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

首先,不要使用query\\u posts,而是使用WP\\u query。要显示每个页面的50个carachters:

<?php 
$args = array(
        \'post_type\' => \'page\',
        \'post_parent\' => \'6\',
        \'order\'=> \'DESC\'    
        );
$pages_returned = new WP_Query($args);
        while ( $pages_returned->have_posts()): $pages_returned->the_post(); ?>

<div class="page-excerpt">
     <h1><?php the_title(); ?></h1>
     <?php the_excerpt(); ?>
</div>
<?php endwhile; ?>
现在是函数的50个字符限制。php添加

function custom_excerpt_length( $length ) {
    return 50;
}
add_filter( \'excerpt_length\', \'custom_excerpt_length\', 999 );
应该是这样。

SO网友:s_ha_dum

首先,请不要使用query_posts. 新建WP_Query 对象

注意:此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。双重注意:query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。任何现代的WP代码都应该使用更可靠的方法,比如使用pre\\u get\\u posts钩子。TL;DR从不使用query\\u posts();

那么,像这样的方法应该会奏效:

$args = array(
        \'post_type\' => \'page\',
        \'post_parent\' => \'6\',
        \'order\'=> \'DESC\'

        );
$qry = new WP_Query($args);
        while ( $qry->have_posts() ) {
            $qry->the_post(); 
            the_excerpt();
        }
您也可以使用wp_trim_words 具有$post->post_content.

参考号:

http://codex.wordpress.org/Function_Reference/the_excerpt

结束

相关推荐