WP_Query
或get_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的最新文章列表会包含置顶文章,为了实现这一目标,我们需要进行一些代码调整,本文将详细介绍如何在最新文章列表中排除置顶文章,并提供相关的问题与解答。
方法
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);
<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,
'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教程:最新文章列表中排除置顶文章”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。