专栏首页DeveWorkWordPress纯代码仿无觅相关文章图文模式功能(增强版)

WordPress纯代码仿无觅相关文章图文模式功能(增强版)

之前在《WordPress纯代码高仿 无觅相关文章 图文模式功能》一文中分享的代码有两个缺点:一是文章相关度不够(该代码使用分类进行关联相关文章);二是可能会出现当前文章。于是,Jeff在大体看懂源代码的情况下结合着两段源代码进行修改,成功解决以上的两个问题。下面分享最新版本的代码。

本方法实现的相关文章原理是通过获取该文章分类,找到同一分类的文章,这些文章即为“相关文章”。而图片的话,采用的是timthumb 截图(好处是节约空间,提高加载速度),默认的话是截取文章的第一张图片,文章没有图片的话就使用随机图片。

将下面的代码替换 《WordPress纯代码高仿 无觅相关文章 图文模式功能》的第一段代码,其他照原来的即可。

<div class="same_cat_posts"> <h3>亲,意犹未尽?来看更多:</h3> <ul class="same_cat_posts_ul"> <?php $post_num = 5; // 數量設定. $exclude_id = $post->ID; // 單獨使用要開此行 //zww: edit $posttags = get_the_tags(); $i = 0; if ( $posttags ) { $tags = ''; foreach ( $posttags as $tag ) $tags .= $tag->term_id . ','; //zww: edit $args = array( 'post_status' => 'publish', 'tag__in' => explode(',', $tags), // 只選 tags 的文章. //zww: edit 'post__not_in' => explode(',', $exclude_id), // 排除已出現過的文章. 'caller_get_posts' => 1, 'orderby' => 'comment_date', // 依評論日期排序. 'posts_per_page' => $post_num ); query_posts($args); while( have_posts() ) { the_post();//edit by Jeff at DeveWork.com $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id(), 'large');?> <li> <?php if ( has_post_thumbnail() ) { ?><a class="same_cat_posts_img" href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <img src="<?php echo $thumbnail[0]; ?>" alt="<?php the_title(); ?>" /></a> <?php } else { ?> <a class="same_cat_posts_img" href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php echo post_thumbnail_src(); ?>&h=114&w=114&zc=1" alt="<?php the_title(); ?>" class="thumbnail"/></a> <?php } ?> <p class="same_cat_posts_tittle"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> <?php the_title(); ?></a></p> </li>   <?php $exclude_id .= ',' . $post->ID; $i ++; } wp_reset_query(); } if ( $i < $post_num ) { // 當 tags 文章數量不足, 再取 category 補足. $cats = ''; foreach ( get_the_category() as $cat ) $cats .= $cat->cat_ID . ','; $args = array( 'category__in' => explode(',', $cats), // 只選 category 的文章. 'post__not_in' => explode(',', $exclude_id), 'caller_get_posts' => 1, 'orderby' => 'comment_date', 'posts_per_page' => $post_num - $i ); query_posts($args); while( have_posts() ) { the_post(); //edit by Jeff at DeveWork.com $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id(), 'large');?> <li> <?php if ( has_post_thumbnail() ) { ?><a class="same_cat_posts_img" href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <img src="<?php echo $thumbnail[0]; ?>" alt="<?php the_title(); ?>" /></a> <?php } else { ?> <a class="same_cat_posts_img" href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <img src="<?php bloginfo('template_directory'); ?>/timthumb.php?src=<?php echo post_thumbnail_src(); ?>&h=114&w=114&zc=1" alt="<?php the_title(); ?>" class="thumbnail"/></a> <?php } ?> <p class="same_cat_posts_tittle"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> <?php the_title(); ?></a></p> </li> <?php $i++; } wp_reset_query(); } if ( $i == 0 ) echo '<li>没有相关文章!</li>'; ?> </ul> </div>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • WordPress自定义栏目运用实例III:添加原创/转载文章不同版权声明

    这里是WordPress自定义栏目运用实例系列第三讲,为大家带来用自定义栏目添加原创/转载文章不同版权声明。跟本上,这个与之前的《WordPress自定义栏目运...

    Jeff
  • WordPress自定义栏目运用实例 VI:设置外链缩略图/特色图像

    这里是WordPress 自定义栏目运用实例系列第五讲,为大家带来设置外链缩略图/特色图像的方法。如果你的主题支持特色图像的话,你会发现使用特色图像的图像是不能...

    Jeff
  • WordPress 代码实现相关文章(列表模式)功能

    之前分享的相关文章代码化功能是仿无觅的图文模式,现在分享的一个是文章列表陈列模式。代码最初来自 Willin Kan,经过zwwooooo 的修改优化。不得不说...

    Jeff
  • 三个小时学会wordpress模板制作

      最近接了一个项目需要用wordpress建站,版面相对简单,ytkah就琢磨着自己来设计wordpress模板,首页栏目页文章页(很多网站无外乎就这些页面)...

    ytkah
  • WordPress主题模板的制作技巧

    前几篇文章小编分别介绍了PageAdmin、帝国、Ecshop这些国内知名建站系统的模板制作和修改,今天小编给大家介绍国外很有名的个人博客系统:wordpres...

    用户4831957
  • 知识图谱推理与实践(3) -- jena自定义builtin

    在第2篇里,介绍了jena的The general purpose rule engine(通用规则引擎)及其使用,本篇继续探究,如何自定义builtin。

    JadePeng
  • openshift/origin学习记录(13)——集群节点扩容(Master/node/etcd)

    集群搭建成功之后,可以对集群进行扩容,包括对Master、Node、Etcd等的扩容,添加新的节点。 官方文档链接如下:https://docs.open...

    胡了了
  • openshift 3.10多节点集群安装(基于Ansible和Centos7.4)

    由于我是在自己笔记本上建了两台虚机,资源有限,这里就拿双节点模拟一下集群,其中master节点也是计算节点、infra节点,运行etcd和nfs。node节点运...

    胡了了
  • 4.1 数值积分、高等函数绘制

    is defined informally as the signed area of the region in the xy-plane that is ...

    周星星9527
  • 语义分割--Pixel Deconvolutional Networks

    本文首先指出在常规的 deconvolutional operation 会导致 所谓的 checkerboard 问题。这主要是因为 deconvoluti...

    用户1148525

扫码关注云+社区

领取腾讯云代金券