如何在WordPress中排除置顶文章以显示最新文章列表?

avatar
作者
猴君
阅读量:0
在WordPress中,要排除置顶文章,可以使用WP_Queryget_posts函数并设置参数。,,``php,$args = array(, 'post__not_in' => get_option('sticky_posts'),, 'posts_per_page' => 10,,);,$query = new WP_Query($args);,while ($query->have_posts()) : $query->the_post();, echo '' . get_the_title() . '';,endwhile;,wp_reset_postdata();,``

WordPress教程:最新文章列表中排除置顶文章

如何在WordPress中排除置顶文章以显示最新文章列表?

在WordPress建站过程中,有时我们需要将最新文章和置顶文章分开显示,默认情况下,WordPress的最新文章列表会包含置顶文章,为了实现这一目标,我们需要进行一些代码调整,本文将详细介绍如何在最新文章列表中排除置顶文章,并提供相关的问题与解答。

方法

1、使用WP_Query函数:这是WordPress官方推荐的函数,灵活且易于控制。

2、使用get_results()函数:这种方法速度较快,但相对复杂。

3、使用query_posts()函数:虽然可以实现功能,但不推荐用于二次查询。

4、使用模板标签wp_get_archives:这是最简单的方法,但自定义程度较低。

详细步骤

1、使用WP_Query函数

```php

<ul>

<?php

$recentPosts = new WP_Query(array('post__not_in' => get_option('sticky_posts')));

?>

<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>

<li><a href="<?php the_permalink() ?>" rel="bookmark" class="title"><?php the_title(); ?></a></li>

<?php endwhile; wp_reset_query();?>

</ul>

```

2、使用get_results()函数

```php

<ul>

<?php

global $wpdb;

$result = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts WHERE post_status='publish' AND post_type='post' AND ID NOT IN (" . implode(',', get_option('sticky_posts')) . ") ORDER BY ID DESC LIMIT 0, 10");

?>

<?php foreach ($result as $post): ?>

setup_postdata($post);

如何在WordPress中排除置顶文章以显示最新文章列表?

<li><a href="<?php echo get_permalink($post->ID); ?>" title="<?php echo $post->post_title; ?>"><?php echo $post->post_title; ?></a></li>

<?php endforeach; wp_reset_postdata();?>

</ul>

```

3、使用query_posts()函数

```php

<?php

$post_num = 10; // 显示文章数量

$args=array(

'post_status' => 'publish',

'paged' => $paged,

'caller_get_posts' => 1,

'posts_per_page' => $post_num

);

query_posts($args);

?>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>

<?php endwhile; else: endif; wp_reset_query();?>

```

4、使用模板标签wp_get_archives

```php

<?php wp_get_archives(array(

'type' => 'postbypost',

'show_posts' => 10,

如何在WordPress中排除置顶文章以显示最新文章列表?

'format' => 'custom',

'before' => '',

'after' => '',

'limit' => '',

'orderby' => 'postbypost',

'order' => 'DESC',

'exclude' => implode(',', get_option('sticky_posts')),

'echo' => 0) ); ?>

```

相关问题与解答

1、问题1:为什么在首页的最新文章列表中仍然显示置顶文章?

解答1:如果你在首页的最新文章列表中仍然看到置顶文章,可能是因为主题或插件的设置覆盖了默认行为,你可以尝试检查主题的functions.php文件,看是否有相关的代码片段,或者禁用可能影响此功能的插件。

2、问题2:如何确保在所有页面上都不显示置顶文章?

解答2:你可以将以下代码添加到你的主题的functions.php文件中,以确保在所有页面上都不显示置顶文章:

```php

function exclude_sticky_posts_from_recent_posts($query) {

if ($query->is_home() && $query->is_main_query()) {

$query->set('ignore_sticky_posts', 1);

}

}

add_action('pre_get_posts', 'exclude_sticky_posts_from_recent_posts');

```

通过上述方法,你可以在WordPress的最新文章列表中成功排除置顶文章,从而更好地管理你的内容展示,希望这篇教程对你有所帮助!

以上内容就是解答有关“wordpress教程:最新文章列表中排除置顶文章”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!