无需插件手工PHP代码实现WordPress相关文章调用

老乐 定制开发2字数 1591阅读5分18秒阅读模式

最近麦子在改造WordPress的官方默认主题,实际上官方默认主题还是很轻便的,但是有些功能不够完美,只能通过代码修改。比如文章没有相关文章调用,这里可以用插件,但是我还是喜欢代码改进反正是自己用的。这里可以用PHP代码调用WordPress相关文章。

//PHP调用相关文章 https://www.zhujipingjia.com/wp-relatedposts.html
<div class="related_posts">
<h3>您可能也喜欢这几篇文章:</h3>
<ul>
<?php
$post_num = 10;
$exclude_id = $post->ID;
$posttags = get_the_tags(); $i = 0;
if ( $posttags ) {
$tags = ''; foreach ( $posttags as $tag ) $tags .= $tag->term_id . ',';
$args = array(
'post_status' => 'publish',
'tag__in' => explode(',', $tags),
'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(); ?>
<li><a rel="bookmark" href="<?php%20the_permalink();%20?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a></li>
<?php
$exclude_id .= ',' . $post->ID; $i ++;
} wp_reset_query();
}
if ( $i < $post_num ) {
$cats = ''; foreach ( get_the_category() as $cat ) $cats .= $cat->cat_ID . ',';
$args = array(
'category__in' => explode(',', $cats),
'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(); ?>
<li><a rel="bookmark" href="<?php%20the_permalink();%20?>" title="<?php the_title(); ?>" target="_blank"><?php the_title(); ?></a></li>
<?php $i++;
} wp_reset_query();
}
if ( $i == 0 ) echo '<li>没有相关文章!</li>';
?>
</ul>
</div>

代码加入到我们需要的 single.php 对应位置,部分代码自己修改,比如调用的条数默认是10条。

.related_posts {
margin-top: 5px;
padding-bottom: 10px;
border-bottom: 1px solid #ededed;
}
.related_posts h3 {
margin-bottom: 5px;
}
.related_posts li {
margin-left: 20px;
color: #ccc;
list-style: square;
font-size: 14px;
line-height: 26px;
padding: 0 0 0 5px
}

同时手工调整CSS样式。

投上你的一票
 
  • 本文由 老乐 发表于 2024年12月31日 17:18:10
  • 转载请务必保留本文链接:https://www.zhujipingjia.com/wp-relatedposts.html