关注VPS主机与
服务器促销分享

怎样在WordPress功能文件文件中自定义获取相关文章代码

到底是该选择WordPress插件还是在functions.php中添加代码?相对来说如果是需求的功能通过插件是可以满足的,那么使用插件的那是无可厚非的。另外如果您所需要的功能不可用插件,同时通过添加代码段又是非常简单的情况,那么就可以选择到功能文件中添加代码段的方式了。今天就来看一看怎样在functions.php中添加一段获取相关文章的代码。

将下面的代码插入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函数。

以上方式虽然操作比较简单,但最终还是针对网站需求和操作者有两个要求,一是对获取相关文章的需求比较重要,而是作者以前在functions.php中经常也会添加一些代码,并且对代码的功能比较熟悉。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权, 转载请注明出处。
文章名称:《怎样在WordPress功能文件文件中自定义获取相关文章代码》
文章链接:https://www.zyhot.com/article/503.html
关于安全:任何IDC都有倒闭和跑路的可能,月付和备份是您的最佳选择,请保持良好的、有规则的备份习惯。
本站声明:本站仅做信息分享,不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本站请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本站,即表示您已经知晓并接受了此声明通告。

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册