当前位置: 首页 > news >正文

WordPress相关文章推荐

首先 WordPress 本身并没有相关文章的推荐功能,网站之所以需要这样的功能出于两个原因,一方面是推荐相关的内容越优质,访客的留存和继续阅读将会增强,同样从优化角度来说会更加有利于搜索引擎抓取时对页面质量的提升,毕竟一个页面的内容,推荐内容越相关,说明这个页面的质量就越高。

<?phpglobal $post;
$pid = $post->ID;//当前文章的 ID
$tags = [];
$limit = 6;//自定义数量
$post_tags = get_the_terms($pid,'post_tag');
if ( !empty($post_tags) && !is_wp_error($post_tags) ) {$tags = wp_list_pluck($post_tags, 'term_id');
}
$related_args = ['ignore_sticky_posts' => 1,'post_type' => 'post','posts_per_page' => $limit,'post_status' => 'publish','post__not_in' => [$pid],'tag__in' => $tags,'cat' => 2, //获取指定分类下的,可以不加或者不加。
];
$relateds = new WP_Query($related_args);
$post_count = $relateds->post_count;
$output = '<ul>';
if($relateds->have_posts()){while($relateds->have_posts()){$relateds->the_post();$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';}if($post_count<$limit){//数量还不够wp_reset_postdata();$limit = $limit - $post_count;//还差几条数据$pids = wp_list_pluck($relateds->posts,'ID');//获取已有文章 ID$pids = array_merge([$pid],$pids);//合并文章 ID$catids = wp_list_pluck(get_the_category($pid),'term_id');//分类 ID$related_args = ['ignore_sticky_posts' => 1,'post_type' => 'post','posts_per_page' => $limit,'post_status' => 'publish','post__not_in' => $pids,'category__in' => $catids,];$relateds = new WP_Query($related_args);$post_count = $relateds->post_count;if($relateds->have_posts()){while($relateds->have_posts()){$relateds->the_post();$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';}}}//数量还不够if($post_count<$limit){//还不够wp_reset_postdata();$limit = $limit - $post_count;//还差数据$pids = array_merge($pids,wp_list_pluck($relateds->posts,'ID'));//合并文章 ID$related_args = ['ignore_sticky_posts' => 1,'post_type' => 'post','posts_per_page' => $limit,'post_status' => 'publish','post__not_in' => $pids,];$relateds = new WP_Query($related_args);if($relateds->have_posts()){while($relateds->have_posts()){$relateds->the_post();$output .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';}}}//还不够
}
wp_reset_postdata();
$output .= '</ul>';
echo $output;?>

代码看上去很长,但是大家可以简单的看看其实还是很简单的,首先是根据当前文章 ID 获取当前文章设置的标签,根据标签来获取相同标签的文章,并且排除当前文章,如果文章数量不够,就继续或许当前文章分类下面的文章,并且排除当前文章和前面已经获取到的文章,如果还不够我们需要的数量,就整站获取其他文章补够数量。

相关文章:

WordPress相关文章推荐

首先 WordPress 本身并没有相关文章的推荐功能&#xff0c;网站之所以需要这样的功能出于两个原因&#xff0c;一方面是推荐相关的内容越优质&#xff0c;访客的留存和继续阅读将会增强&#xff0c;同样从优化角度来说会更加有利于搜索引擎抓取时对页面质量的提升&#xff0c;毕…...

【QML】Qt和QML获取操作系统类型

1. Qt获取系统类型 //方法 QSysInfo::productType()//举例&#xff1a; if(QSysInfo::productType() "windows") {qDebug() << "windows system"; }官方说明&#xff1a; [static] QString QSysInfo::productType() Returns the product name of …...

CSS 显示、定位、布局、浮动

一、CSS 显示&#xff1a; CSS display属性设置元素应如何显示&#xff1b;CSS visibility属性指定元素应可见还是隐藏。隐藏元素可以通过display属性设置为“none”&#xff0c;也可以通过visibility属性设置为“hidden”。两者的区别&#xff1a;visibility:hidden可以隐藏某…...

Java 学习笔记

文章目录 一、集合1.1 List1.1.1 ArrayList1.1.2 Vector1.1.3 LinkedList 1.2 Deque1.3 Set1.4 Map1.4.1 HashMap1.4.2 LinkedHashMap 1.5 注意事项 二、函数式接口和 Lambda 表达式三、方法引用3.1 静态方法引用3.2 实例方法引用3.2 特定类型的方法引用3.4 构造器引用 四、Str…...

项目实战:优化Servlet,把所有围绕Fruit操作的Servlet封装成一个Servlet

1、FruitServlet 这些Servlet都是围绕着Fruit进行的把所有对水果增删改查的Servlet放到一个Servlet里面&#xff0c;让tomcat实例化一个Servlet对象 package com.csdn.fruit.servlet; import com.csdn.fruit.dto.PageInfo; import com.csdn.fruit.dto.PageQueryParam; import c…...

Go语言函数参数

文章目录 Go语言函数参数1. **函数参数的定义**&#xff1a;2. **参数的数量**&#xff1a;3. **参数的数据类型**&#xff1a;4. **参数的命名**&#xff1a;5. **参数的传递**&#xff1a;6. **参数的传递方式**&#xff1a;7. **空白标识符**&#xff1a; Go语言函数参数 在…...

【遍历二叉树的非递归算法,二叉树的层次遍历】

文章目录 遍历二叉树的非递归算法二叉树的层次遍历 遍历二叉树的非递归算法 先序遍历序列建立二叉树的二叉链表 中序遍历非递归算法 二叉树中序遍历的非递归算法的关键&#xff1a;在中序遍历过某个结点的整个左子树后&#xff0c;如何找到该结点的根以及右子树。 基本思想&a…...

数模之线性规划

线性规划 优化类问题&#xff1a;有限的资源&#xff0c;最大的收益 例子: 华强去水果摊找茬&#xff0c;水果摊上共3个瓜&#xff0c;华强总共有40点体力值,每劈一个瓜能带来40点挑衅值,每挑一个瓜问“你这瓜保熟吗”能带来30点挑衅值,劈瓜消耗20点体力值&#xff0c;问话消耗…...

【C++】AVL树的4中旋转调整

文章目录 前提一、AVL树的结构定义二、AVL的插入&#xff08;重点&#xff09;1. 插入的结点在较高左子树的左侧&#xff08;右单旋&#xff09;2. 新节点插入较高右子树的右侧&#xff08;左单旋&#xff09;3.新结点插入较高右子树的左侧&#xff08;先右单旋再左单旋&#x…...

【MATLAB源码-第69期】基于matlab的LDPC码,turbo码,卷积码误码率对比,码率均为1/3,BPSK调制。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 本文章介绍了卷积码、Turbo码和LDPC码。以相同的码率仿真这三种编码&#xff0c;并对比其误码率性能 信源输出的数据符号&#xff08;二进制&#xff09;是相互独立和等概率的&#xff1b; 信道是加性白高斯噪声信道&#…...

Java获取时间戳、字符串和Date对象的相互转换、日期时间格式化、获取年月日

获取时间戳&#xff08;自1970年1月1日经历的毫秒数值&#xff09; package org.example;import java.util.Date;public class Main {public static void main(String[] args) {Date date1 new Date(1699540662210L);System.out.println(date1.getTime());Date date2 new Dat…...

用c语言实现矩阵转置

下面是在 C 语言中实现矩阵转置的示例代码&#xff1a; #include <stdio.h> #define ROWS 3 #define COLS 3 void transpose(int matrix[ROWS][COLS]) { int temp; for(int i0; i<ROWS; i) { for(int j0; j<i; j) { temp matrix[i][j]; matrix[i][j] matrix[j]…...

蓝桥杯官网练习题(移动距离)

题目描述 X 星球居民小区的楼房全是一样的&#xff0c;并且按矩阵样式排列。其楼房的编号为 1,2,3, 当排满一行时&#xff0c;从下一行相邻的楼往反方向排号。 比如&#xff1a;当小区排号宽度为 6 时&#xff0c;开始情形如下&#xff1a; 1 2 3 4 5 6 12 …...

不止于“初见成效”,阿斯利康要让数据流转,以 AI 带动决策智能

“阿斯利康数字化成果在进博会上引人注目&#xff0c;令我感到非常高兴。”这是阿斯利康代表的感慨。 数字化建设目标是利用先进技术来提高企业运营效率&#xff0c;降低成本。在第六届进博会的7.2 B2-01展区&#xff0c;阿斯利康不仅展示了全球领先的生物医药和医疗器械成果&a…...

nav2 调节纯追踪算法

纯追踪算法 纯追踪基础 The core idea is to find a point on the path in front of the robot and find the linear and angular velocity to help drive towards it. 核心思想是在机器人前方的路径上找到一个点&#xff0c;并找到一个合适的线速度和角速度&#xff0c;以驱…...

安装RabbitMQ

安装RabbitMQ 下载需要的两个包 # 这直接就可以安装了&#xff0c;下面 ‘上传对应的rmp包’ 操作 [rootrabbitmq-1 ~]# curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash [rootrabbitmq-1 ~]# yum install erlang-21.3.8.2…...

Spring基础(1):两个概念

最近看了点Spring的源码&#xff0c;于是来稍微扯一扯&#xff0c;希望能帮一部分培训班出身的朋友撕开一道口子&#xff0c;透透气。 广义上的Spring指的是Spring整个项目&#xff0c;包含SpringBoot、SpringCloud、SpringFramework、SpringData等等&#xff0c; 本系列文章…...

国产化精密划片机已得到国内更多厂家青睐

国产化精密划片机在近年来得到了国内许多厂家的青睐&#xff0c;这是因为精密划片机在工业生产中有着重要作用。这种设备主要用于高精密切割加工&#xff0c;适用于多种材料&#xff0c;包括硅、石英、氧化铝、氧化铁等。 以精密晶圆划片机为例&#xff0c;这种设备采用了自主研…...

Voice Control for ChatGPT简单高效的与ChatGPT进行交流学习。

快捷又不失灵活性 日常生活中&#xff0c;我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的&#xff0c;毕竟相对于文字来说语音就不会显的那么的苍白无力&#xff0c;同时最大的好处就是能解放我们的双手吧&#xff0c;能更快实现两者间的对话&#xff0c;沟通便更高效…...

flutter生态一统甜夏 @Android @ios @windowse @macos @linux @Web

(愿景)G o o g l e 中 国flutter生态一统天下(IT) Web Android ios Windowse Macos Linux Google中国https://space.bilibili.com/64169458 https://pub-web.flutter-io.cn 构建 Flutter Web 应用 构建 Flutter Web 应用 - Flutter 中文文档 - Flutter 中文开发者网站 …...

使用LaTeX撰写技术报告:如何优雅呈现cv_unet_image-colorization实验数据

使用LaTeX撰写技术报告&#xff1a;如何优雅呈现cv_unet_image-colorization实验数据 写技术报告或者论文&#xff0c;最头疼的往往不是实验本身&#xff0c;而是怎么把那些辛辛苦苦跑出来的数据、图表、结果&#xff0c;清晰又专业地呈现出来。你肯定遇到过这种情况&#xff…...

WarcraftHelper:魔兽争霸3玩家的终极优化伴侣

WarcraftHelper&#xff1a;魔兽争霸3玩家的终极优化伴侣 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电脑上的各种兼容性问…...

Scroll Reverser终极指南:如何在macOS上为不同设备设置独立滚动方向

Scroll Reverser终极指南&#xff1a;如何在macOS上为不同设备设置独立滚动方向 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser Scroll Reverser是一款专为macOS用户设计的智能滚…...

3分钟掌握哔哩下载姬:免费开源B站视频下载终极方案

3分钟掌握哔哩下载姬&#xff1a;免费开源B站视频下载终极方案 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff…...

Pixel Language Portal应用场景:跨境SaaS产品实时多语种客户支持响应

Pixel Language Portal应用场景&#xff1a;跨境SaaS产品实时多语种客户支持响应 1. 跨境业务中的语言挑战 在全球化的商业环境中&#xff0c;跨境SaaS产品面临的最大挑战之一就是语言障碍。当客户来自不同国家和地区时&#xff0c;如何提供及时、准确的多语言支持成为企业必…...

R语言向量操作全解析:从基础到实战应用

1. 向量&#xff1a;R语言的数据基石 第一次打开RStudio时&#xff0c;你可能被各种数据类型搞得晕头转向。但相信我&#xff0c;只要掌握了向量这个核心概念&#xff0c;就等于拿到了打开R语言大门的钥匙。作为R中最基础也最重要的数据结构&#xff0c;向量就像乐高积木的单个…...

浏览器工作原理从输入URL到页面渲染

当你在浏览器地址栏输入一个网址并按下回车时&#xff0c;短短几秒内&#xff0c;一个完整的网页就呈现在你眼前。这背后隐藏着一系列复杂而精妙的过程&#xff0c;涉及网络通信、数据解析和视觉渲染等多个环节。本文将带你深入探索浏览器从输入URL到页面渲染的工作原理&#x…...

毕业季不熬夜:如何用百考通AI高效、规范地搞定你的毕业论文

​ 又到一年毕业季&#xff0c;宿舍的灯总是亮到深夜。屏幕上的空白文档、散落满桌的文献、导师反复的修改意见&#xff0c;以及永远对不上的格式要求……这些场景几乎是每位毕业生的共同记忆。很多时候&#xff0c;阻碍你进度的并不是缺乏思路&#xff0c;而是没人告诉你&…...

研究技术中的研究方法实验设计与数据分析

研究技术中的研究方法、实验设计与数据分析是科学研究的重要环节&#xff0c;它们直接影响研究结果的可靠性和有效性。无论是自然科学、工程技术还是社会科学&#xff0c;合理的研究方法、严谨的实验设计以及科学的数据分析都是确保研究质量的关键。本文将围绕这三个核心环节展…...

基于MCP协议的EVM区块链交互服务器:为AI智能体赋能Web3操作

1. 项目概述&#xff1a;为AI智能体打开区块链世界的大门 如果你正在构建一个AI智能体&#xff0c;并且希望它能像人类开发者一样&#xff0c;自由地查询以太坊上的余额、读取智能合约的状态&#xff0c;甚至帮你执行一笔代币转账&#xff0c;那么你很可能需要一个桥梁来连接A…...