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

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

//PHP调用相关文章 https://www.cnwper.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样式。

投票 post
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享