WordPress 首页第 X 篇文章后插播随机文章

博客目前就是个自娱自乐的地方,没什么访问量,纯粹是折腾给自己看的。挂了些 VPS 的 aff 链接,其实主要是 BWH 的。那些纯粹是优惠信息的文章,默认不在首页显示。昨天突发奇想,让它们随机显示一篇在首页露露脸也好,说不定有需要的看上了呢?

于是就有了这篇文章。

需求:首页第二篇文章后随机显示一篇来自优惠信息分类的文章,更进一步,判断这个分类最近是否有新文章,有就显示最新的文章,没有才显示随机文章。

以前折腾过类似功能,现在弄起来不是很难。

WordPress The Loop 里面有个 $current_post 变量,可以取得当前文章的索引(序号)。『$current_post:(available during The Loop) Index of the post currently being displayed.』可以通过判断它的值,就可以实现将随机文章插入到第 X 篇文章后。

接着是判断最近(比如一周内)是否有新文章,这个也好实现。WordPress 3.7 版本后的 WP_Query 日期参数新增 date_query (array),通过这个参数,很方便就能获取指定分类指定时间内的文章。

下面是 index.php 实现参考代码:

<?php
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array(
'category__not_in' => 888,//排除分类id:888
'paged' => $paged
);
$wp_query = new WP_Query($args);//主循环

$week = date( 'W' );
$year = date( 'Y' );

$args_rand = array(
'category__in' => 888,//选择分类文章id:888
'posts_per_page' => 1,//每页显示一篇
'orderby' => 'rand'
);//888分类随机文章

$args_week = array(
'category__in' => 888,
'date_query' => array(//7天内文章
array(
'column' => 'post_date_gmt',
'after' => '7 days ago',
),
),
'posts_per_page' => 1,
'paged' => 1//只显示第一页
);//888分类一周内文章

$wp_query_week = new WP_Query( $args_week );//获取一周内文章

if ( $wp_query->have_posts() ) {
while ( $wp_query->have_posts() ) : $wp_query->the_post();
get_template_part( 'content', get_post_format() );
if ($wp_query->current_post == 1) {//第 2 篇文章后
if ( $wp_query_week->have_posts() ) {
while ( $wp_query_week->have_posts() ) : $wp_query_week->the_post();
get_template_part( 'content', get_post_format() );
endwhile;
wp_reset_postdata();
} else {
$wp_query_rand = new WP_Query($args_rand);
if ( $wp_query_rand->have_posts() ) {
while ( $wp_query_rand->have_posts() ) : $wp_query_rand->the_post();
get_template_part( 'content', get_post_format() );
endwhile;
wp_reset_postdata();
}
}
}
endwhile;
} else {
get_template_part( 'content', 'none' );
}
?>

注意:需要跟实际使用 WordPress 主题作相应修改。

WordPress 4.8.2 测试通过。

除非注明,垃圾站文章均为网络收集,本文地址 https://cyhour.com/555/,转载时烦请以链接形式注明原始出处。
声明:我们不销售主机,任何VPS主机均有跑路风险且需定期备份,防止数据丢失。信息以实际为准,评测仅供参考不代表权威!
🍄:Netflix 奈飞 YouTube 合租

WordPress 5.0+ 禁用 Gutenberg & WordPress 5.8+ 禁用 Widget 块编辑器

2018.12.06,WordPress 5.0 发布,代号 Bebo。最大的亮(黑)点就是正式引入新的基于块(block-based)的编辑器 —— Gutenberg 编辑器,以及新的默认主题 —— Twenty Nineteen。 WordPress 5.0+ 禁用 Gutenberg 编辑器 第一时间升级,打开文章编辑,一股说不出的杯具感在心头……变化太大,心累…
浏览: 112 标签:  ,  ,  , 

Adobe Flash Player 去helper(Win10 完美恢复)

Adobe 在2020年12月31日后将不再支持 Adobe Flash Player,从2021年1月12日开始,阻止 Flash 内容在 Flash Player 中运行。截图 虽然不喜欢 Adobe Flash Player,但是有些网站目前仍然离不开 Adobe Flash Player,过渡解决方法是:安装中国特供版 Adobe Flash Player 或者安装网友修改 Adobe Flash…

升级新版 Google AdSense 代码提升广告效果

2021年7月19日,Google AdSense 最近发布了新版 AdSense 代码。通过新版 AdSense 代码,AdSense 可以更早触发优化功能,从而提升网站上广告效果。新广告代码适用于自动广告和广告单元。 如何获取 Google AdSense 新版代码? 无需采取任何措施。在下次登录 AdSense 后,您将拥有对新广告代码的访…

利用 Google Analytics 追踪 WordPress 站内搜索关键词

Google分析(Google Analytics)是一个由 Google 所提供的网站流量统计服务。Google 分析(Analytics)现在是互联网上使用最广泛的网络分析服务。 利用 Google Analytics 追踪 WordPress 站内搜索关键词 优化内容 如果网站/博客在 Google Analytics 流量统计,利用 Google Analytics 追踪 W…
浏览: 123 标签: 

Comments:23

  1. 哈哈,目前你首页的前几篇文章都是折腾类……

    2017.09.23 17:51 # 回复
    1楼
  2. 这个功能不错,我是在feed里面排除了一些分类,首页的都显示的,先收藏。

    2017.09.25 08:27 # 回复
    2楼
  3. 6的飞起~~

    2017.09.26 16:42 # 回复
    3楼
  4. 我就不会玩这么高大上的,一般直接循环里插入一个模板,然后在模板里随机,可能连首页已显示的文章都不排除。

    2017.09.29 22:29 # 回复
    4楼
  5. 广告利器,收藏了,不过我那里历史日志几乎没人看。

    2017.10.03 09:23 # 回复
    5楼
  6. 爱生活,会折腾!

    2017.10.10 19:24 # 回复
    6楼
  7. 先收藏下,很能折腾哈。

    2017.10.20 23:59 # 回复
    7楼
  8. 噢,必须用来插播广告!

    2017.10.22 23:42 # 回复
    8楼
  9. 嗯。

    这个倒是有用。。。对于长期不更新的博客和网站,我看好多都在这么干

    2017.10.26 16:00 # 回复
    9楼

发表留言

Vultr 送$100,搬瓦工年付最低$49,优惠码 BWH3HYATVBJW,更多推荐VPS信息