将下面的代码插入functions.php中

获取相关文章的策略: 手动指定 > 标签 >分类 > 随机

//相关文章
function add_related_posts($content){
return $content . wp_related_posts();
}
add_filter ('the_content', 'add_related_posts'); //hook
function wp_related_posts(){
global $post;
$num = 5;//文章数量
$counter = 1;
$exclude_id = get_post_meta($post->ID,'related',true);//获取手动置顶的相关文章
if ($exclude_id){
$args = array(
'post_status' => 'publish',
'post_type' => array('post'),
'post__in' => explode(',', $exclude_id),
'posts_per_page' => $num
);
$posts = get_posts($args);
foreach($posts as $sb){
$output .= '<li><a href="' . get_permalink($sb->ID) . '">' . $sb->post_title . '</a></li>';//可自定义样式
$i++;
}
}
if( $i < $num){//自定义文章数不足后通过分类和标签处理
$tagsid = array();
$catid = array();
$thisid[] = $post->ID;
$posttags = get_the_tags();
$catids = get_the_category();
if(!empty($posttags)) {
foreach($posttags as $tag) {
$tagsid[] = $tag->term_id;
}
}
if(!empty($catids)) {
foreach($catids as $cat) {
$catid[] = $cat->term_id;
}
}
$args = array(
'post_type' => 'post',
'post__not_in' => $thisid,
'ignore_sticky_posts' => 1,
'posts_per_page' => ($num - $i),
'tax_query' => array(
'relation' => 'OR',//改成AND则必须是同标签同分类下
array(
'taxonomy' => 'post_tag',
'field' => 'term_id',
'terms' => $tagsid,
),
array(
'taxonomy' => 'category',
'field' => 'term_id',
'terms' => $catid,
),
),
);
$rsp = get_posts($args );
foreach($rsp as $sb){
$output .= '<li><a href="' . get_permalink($sb->ID) . '">' . $sb->post_title . '</a></li>';//可自定义样式
$i++;
}
}
$final = '<h3>相关文章</h3><ul>' . $output . '</ul>';
return $final;
}

如需加入自定义相关文章,只需新建自定义栏目,加入文章id即可,多篇文章用英文 , 隔开

如果想自定位置,并调整样式,则去掉the_content的钩子,然后手动调用wp_related_posts函数

文章参考自http://www.2zzt.com/jcandcj/7280.html

wordpress可以自定义获取相关文章的代码的更多相关文章

  1. angular自定义指令相关知识及代码

    原文地址 https://www.jianshu.com/p/0c015862156d 大纲 1.自定义指令之——属性指令 2.自定义属性指令的运行原理 3.自定义属性指令代码实践 4.自定义结构指令 ...

  2. wordpress教程之文章页single.php获取当前文章所属分类

    之所以要发这篇文章,是因为这个方法适用于: WP默认文章分类 手动添加的自定文章分类 插件(custom post type ui)添加的自定义文章分类(含taxonomy) 方法目的:在文章模板中, ...

  3. ZBLOG PHP调用相关文章列表以及上一篇下一篇文章代码

    如果是比较小的个人博客.专题类网站项目,老蒋还是比较喜欢使用ZBLOG PHP程序的,无论是轻便度还是易用性上比WordPress简单很多,虽然WP的功能很强大,比如强大的插件和主题丰富功能是当前最为 ...

  4. wordpress调用自定义菜单

    wordpress要调用自定义菜单首先要注册菜单,将代码添加到主题文件夹下的function.php中,比如wordpress自带主题2019的定义如下 // This theme uses wp_n ...

  5. phpcms-v9 --- 如何通过{pc}标签获取全站文章内容?

    1.phpcms-v9默认情况下只能根据catid获取当前栏目及子栏目下的文章,但是有时候我们需要如何通过{pc}标签来获取全站文章内容的需求,应该怎么做呢? 第一步:在content_tag.cla ...

  6. ASP.NET WebApi OWIN 实现 OAuth 2.0(自定义获取 Token)

    相关文章:ASP.NET WebApi OWIN 实现 OAuth 2.0 之前的项目实现,Token 放在请求头的 Headers 里面,类似于这样: Accept: application/jso ...

  7. woocommerce根据标题获取相关产品

    我们知道woocommerce的相关文章是根据分类category或标签tag来获取的,能不能实现根据标题来调取相关产品呢?get_posts() 函数可以根据库存.价格.自定义项.搜索条件等不同的标 ...

  8. 【目录】Newlife XCode组件相关文章目录

    本博客所有文章分类的总目录链接:本博客博文总目录-实时更新  1.Newlife XCode组件相关文章目录  1.Newlife XCode组件资源目录汇总[2013年版]    2.Newlife ...

  9. ffrpc相关文章列表

    ffrpc 是异步c++通信库.可以说是传统rpc模式和zeromq模式的一个结合,采用broker模式封装client和server之间的拓扑关系,而client和server的通信仍然按照请求应答 ...

随机推荐

  1. 在vscode中进行nodejs服务端代码调试(代码修改自动重启服务端)

    使用到的是nodemon,具体在package.json文件中配置如下: "scripts": { "start": "node ./bin/www& ...

  2. python实现字符串中如果遇到连续重复的字符只出现一次非去重

    需求:在一个字符串中, 如果遇到连续重复的字符只出现一个,(不是去重) 例:str1 = 'aabbccddaabbccdd' 输出结果为:‘abcdabcd’ 具体实现代码如下: def func( ...

  3. 牛客练习赛33 E. tokitsukaze and Similar String (字符串哈希)

    题目链接:https://ac.nowcoder.com/acm/contest/308/E 题意:中文题 见链接 题解:哈希预处理(三哈希模板) #include <bits/stdc++.h ...

  4. Vue获取后端数据 渲染页面后跳转

    主页面 <template> <div> <ul v-for="item in courseList"> <router-link :to ...

  5. flask实现文件下载功能

    在Flask想要实现文件下载功能,只需要导入 send_from_directory(directory, filename, **options) 然后在视图函数中返回该函数即可 示例代码如下 fr ...

  6. Python-sokect 示例

    server: #coding=utf-8 import socket _sokect =socket.socket() #创建sokect _host =socket.gethostname() # ...

  7. java中日志打印

    目录 一.预先判断日志级别 二.避免无效日志打印 三.区别对待错误日志 四.保证记录完整内容 打印日志,要注意下面4点. 一.预先判断日志级别 对DEBUG.INFO级别的日志,必须使用条件输出或者使 ...

  8. 洛谷 P3374 【模板】树状数组 1 & P3368 【模板】树状数组 2 题解

    一维树状数组的作用主要是单点修改,单点查询,区间修改,区间查询. 模板1是单点修改,区间查询:模板2是单点查询,区间修改. 模板1: #include<iostream> #include ...

  9. Oracle11g 新特性之动态变量窥视

    从11g開始,这个尴尬的问题開始得到了改善.因此从11g開始,引入了所谓的自适应游标共享(Adaptive Cursor Sharing).该特性是一个很复杂的技术,用来平衡游标共享和SQL优化这两个 ...

  10. 第三章 基本的bash shell命令

    1.硬链接:等同于引用了原文件,并未产生新的文件,不同的硬链接共用一个inode 2.符号链接:创建的是一个新文件,新文件指向原文件,因为是不同的文件,所以有不同的inode