wordpress置顶文章调用与设置

本文介绍WordPress中如何设置及调用置顶文章的方法。通过简单的PHP代码实现自定义模板中展示最多五篇置顶文章的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章来源: https://www.xuewangzhan.net/wpbbs/15737.html

wordpress网站后台允许我们设置一些置顶文章,然后通过调用置顶文章的代码把它调用到自己的网站前台。

下面是最常用的wordpress调用置顶文章代码,适用于所有模板使用。

<?php
$sticky = get_option('sticky_posts');
rsort( $sticky );
$sticky = array_slice( $sticky, 0, 5);
query_posts( array( 'post__in' => $sticky, 'caller_get_posts' => 1 ) );
if (have_posts()) :while (have_posts()) : the_post();
?>

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

<?php endwhile; endif; ?>

 

代码解释:

  • rsort( $sticky ); 对置顶文章数组逆向排序,即大ID在前;
  • $sticky = array_slice( $sticky, 0, 5);控制显示置顶文章的数量,输出置顶文章数,请修改5,0不要动,如果需要全部置顶文章输出,可以把这句注释掉;
  • 'post__in' => get_option('sticky_posts')确定了该LOOP调用的是置顶文章列表。
  • 'caller_get_posts'的作用是排除非指定性文章,即除了置顶文章之外,不显示其他的文章。

wordpress文章置顶方法

【后台】--【文章】--【编辑】---【将文章置顶到顶部】

wordpress调用置顶文章

<think>好的,用户想知道如何在WordPress调用最新更新的文章。首先,我需要回忆一下相关的知识。记得WordPress有一些内置的函数和标签可以用来调用文章,比如wp_get_archives或者WP_Query。 根据用户提供的引用,看到引用[1]提到使用wp_get_archives函数,参数是'postbypost'和显示数量,比如显示10篇。这可能是一种方法,但需要确认是否正确。另外,引用[2]提到排除置顶文章的情况,可能用户需要这个功能,但问题里没有明确说,暂时先记录下来。 然后引用[4]和[5]提到了使用WP_Query来调用不同条件的文章,比如按分类、随机等。可能用WP_Query更灵活,可以指定orderby参数为modified来按更新时间排序。不过默认的wp_get_archives是按发布时间排序的,所以需要调整。 另外,用户的问题是关于“最新更新”的文章,也就是按修改时间排序,而不是发布时间。这时候可能需要使用orderby=modified参数。在WP_Query中应该可以这样设置。比如在参数数组里加上'orderby' => 'modified',这样就能按更新时间获取最新文章了。 还需要考虑是否需要排除当前文章,或者置顶文章。比如引用[5]中的例子用了post__not_in来排除当前文章,如果用户不需要排除,可以不用这个参数。另外,引用[2]提到排除置顶文章,可能需要设置'ignore_sticky_posts' => 1。 总结下来,有两种方法:一种是使用wp_get_archives,但可能需要确认是否支持按修改时间排序。另一种是使用WP_Query,更灵活,可以明确指定orderby为modified。 检查一下wp_get_archives的参数,默认可能不支持按修改时间排序。根据WordPress文档,wp_get_archives的type参数可以是postbypost,但默认是按日期发布的。所以可能这个方法无法直接实现按更新时间排序,这时候必须用WP_Query。 因此,正确的做法应该是使用WP_Query,设置'orderby' => 'modified',并且可能还需要设置'order' => 'DESC',这样最新的更新排在最前面。同时,可以设置posts_per_page来控制显示的数量。 另外,引用[1]中的例子用了get_archives,可能是个打字错误,正确函数是wp_get_archives,但不确定是否支持按修改时间。可能需要测试,但根据常规用法,可能不支持,所以更推荐WP_Query方法。 用户的问题中还提到“最新更新”,所以需要确保获取的是最近修改过的文章,而不仅仅是新发布的。这时候必须用modified参数。例如: $args = array( 'post_type' => 'post', 'orderby' => 'modified', 'order' => 'DESC', 'posts_per_page' => 10, 'ignore_sticky_posts' => 1 ); 然后使用WP_Query进行查询,并循环输出结果。 另外,用户可能需要排除置顶文章,这时候可以加上'post__not_in' => get_option('sticky_posts'),但需要确认sticky_posts是否正确获取。引用[2]中提到排除置顶,所以如果需要的话,应该加上这个参数。 最后,展示代码示例,并说明如何自定义,比如修改显示数量或排除某些文章。同时,提醒用户代码放置的位置,比如在主题文件中,可能需要PHP支持的地方,如sidebar.php或自定义模板中。 需要检查是否有其他方法,比如使用query_posts,但通常不推荐,因为可能影响主循环。更推荐使用WP_Query或者get_posts。 总结步骤: 1. 使用WP_Query,设置orderby为modified,order为DESC。 2. 设置posts_per_page为需要的数量。 3. 可选排除置顶文章。 4. 循环输出文章标题和链接。 5. 重置查询数据,避免影响其他循环。 同时,可能还需要注意缓存问题,因为频繁查询可能影响性能,但用户问题中没有提到,暂时不涉及。 最后,生成相关问题,比如如何排除置顶文章,如何显示更新时间等,帮助用户进一步了解。</think>在WordPress调用最新更新的文章,可以通过以下两种常用方法实现: ### 方法一:使用WP_Query灵活调用 ```php <?php $args = array( 'post_type' => 'post', 'orderby' => 'modified', // 按最后修改时间排序 'order' => 'DESC', // 降序排列(最新在前) 'posts_per_page' => 5, // 显示数量 'post_status' => 'publish', 'ignore_sticky_posts' => 1 // 排除置顶文章[^2] ); $recent_posts = new WP_Query($args); if ($recent_posts->have_posts()) : while ($recent_posts->have_posts()) : $recent_posts->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; wp_reset_postdata(); // 重置查询[^4] endif; ?> ``` ### 方法二:使用get_posts函数 ```php <?php $posts = get_posts(array( 'numberposts' => 3, 'orderby' => 'post_modified', 'post_status' => 'publish' )); foreach($posts as $post) : setup_postdata($post); ?> <div><?php the_title(); ?>(最后更新:<?php the_modified_date(); ?>)</div> <?php endforeach; wp_reset_postdata(); ?> ``` ### 参数说明 1. `orderby=modified`:核心参数,实现按更新时间排序 2. `ignore_sticky_posts=1`:可选参数,排除置顶文章[^2] 3. `post_status=publish`:保证只显示已发布文章 4. 显示更新时间可添加`the_modified_date()`函数[^5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值