IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    纯代码为WordPress添加相关文章的几种方法

    清夏发表于 2024-07-10 02:59:03
    love 0

    修改主题文件前记得先备份,有问题再还原。

    1、在主题函数文件functions.php里面添加下面的内容

    /**
    * Related posts
    *
    * @global object $post
    * @param array $args
    * @return
    */
    function wcr_related_posts($args = array()) {
    global $post;
    
    // default args
    $args = wp_parse_args($args, array(
    'post_id' => !empty($post) ? $post->ID : '',
    'taxonomy' => 'category',
    'limit' => 3,
    'post_type' => !empty($post) ? $post->post_type : 'post',
    'orderby' => 'date',
    'order' => 'DESC'
    ));
    
    // check taxonomy
    if (!taxonomy_exists($args['taxonomy'])) {
    return;
    }
    
    // post taxonomies
    $taxonomies = wp_get_post_terms($args['post_id'], $args['taxonomy'], array('fields' => 'ids'));
    
    if (empty($taxonomies)) {
    return;
    }
    
    // query
    $related_posts = get_posts(array(
    'post__not_in' => (array) $args['post_id'],
    'post_type' => $args['post_type'],
    'tax_query' => array(
    array(
    'taxonomy' => $args['taxonomy'],
    'field' => 'term_id',
    'terms' => $taxonomies
    ),
    ),
    'posts_per_page' => $args['limit'],
    'orderby' => $args['orderby'],
    'order' => $args['order']
    ));
    
    include( locate_template('related-posts-template.php', false, false) );
    
    wp_reset_postdata();
    }

    2、新建一个related-posts-template.php文件,添加以下内容:

    <?php if (!empty($related_posts)) { ?>
    <div class="related-posts">
    <h3 class="widget-title"><?php _e('相关文章', ''); ?></h3>
    
    <ul class="related-posts-list">
    <?php
    foreach ($related_posts as $post) {
    setup_postdata($post);
    ?>
    <li>
    <a class="title" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
    <?php if (has_post_thumbnail()) { ?>
    <div class="thumb">
    <?php echo get_the_post_thumbnail(null, 'medium', array('alt' => the_title_attribute(array('echo' => false)))); ?>
    </div>
    <?php } ?>
    <h4><?php the_title(); ?></h4>
    </a>
    </li>
    <?php } ?>
    </ul>
    <div class="clearfix"></div>
    </div>
    <?php
    }

    调用方法
    如果要调用相关文章代码,只需要在你主题合适的位置,通常是添加到single.php文件里面。

    1、显示3个相关文章内容代码

    <?php wcr_related_posts(); ?>

    显示5条这样写,数字5是要显示的文章数量

    <?php wcr_related_posts( array( 'limit' => 5 ) ); ?>

    这种相关文章是根据分类来展示的。

    2、根据文章TAG来展示相关文章

    <?php
    wcr_related_posts(array(
    'taxonomy' => 'post_tag',
    'limit' => 6
    ));
    ?>

    数字6自行修改,为展示文章数量。

    3、根据分类的热门评论文章展示

    <?php
    wcr_related_posts(array(
    'limit' => 6,
    'orderby' => 'comment_count',
    'order' => 'ASC'
    ));
    ?>

    4、根据特定文章的TAG展示相关文章

    <?php
    wcr_related_posts(array(
    'limit' => 6,
    'taxonomy' => 'post_tag',
    'post_id' => 145
    ));
    ?>

    最后,你可能还需要自己修改下css样式让相关文章更好看。

     

    还有其他一些方法:https://blog.naibabiji.com/skill/wordpress-xiang-guan-wen-zhang.html



沪ICP备19023445号-2号
友情链接