搜档网
当前位置:搜档网 › 三种方法实现调用wordpress相关文章

三种方法实现调用wordpress相关文章

三种方法实现调用wordpress相关文章
三种方法实现调用wordpress相关文章

方法一:文章根据标签相关(用SQL获取)

相关原理:首先获取改篇文章的所有标签,接着获取这些标签下的n 篇文章,那么这n 篇文章就是与该文章相关的文章了。现在可以见到的WordPress相关文章插件都是使用的这个方法。这里我们通过SQL语句来直接读取数据库,随机获取10篇相关的文章记录。下面是实现的代码:

该文章的相关文章

    $all_tags = wp_get_post_tags($post->ID);

    if ($all_tags) {

    $tag_list = '';

    foreach ($all_tags as $tag)

    {

    // 获取标签列表

    $tag_list .= $tag->term_id.',';

    }

    $tag_list = substr($tag_list, 0, strlen($tag_list)-1);

    $related_posts = $wpdb->get_results("

    SELECT post_title, ID

    FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy

    WHERE {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id

    AND ID = object_id

    AND taxonomy = 'post_tag'

    AND post_status = 'publish'

    AND post_type = 'post'

    AND term_id IN (" . $tag_list . ")

    AND ID != '" . $post->ID . "'

    ORDER BY RAND()

    LIMIT 10");

    // 以上代码中的10 为限制只获取10篇相关文章

    // 通过修改数字10,可修改你想要的文章数量

    if ( $related_posts ) {

    foreach ($related_posts as $related_post) {

    ?>

  • post_title; ?>

  • 暂无相关文章

方法二:根据文章的分类获取相关文章

本方法是通过获取该文章的分类id,然后获取该分类下的文章,来达到获取相关文章的目的。我们用SQL语句来直接读取数据库,随机获取10篇相关文章记录。下面是实现的代码:

该分类的相关文章

    $data = wp_get_post_categories($post->ID);

    if ($data) {

    $related = $wpdb->get_results("

    SELECT post_title, ID

    FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy

    WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id

    AND {$wpdb->prefix}term_taxonomy.taxonomy = 'category'

    AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id

    AND {$wpdb->prefix}posts.post_status = 'publish'

    AND {$wpdb->prefix}posts.post_type = 'post'

    AND {$wpdb->prefix}term_taxonomy.term_id = '" . $data[0] . "'

    AND {$wpdb->prefix}posts.ID != '" . $post->ID . "'

    ORDER BY RAND()

    LIMIT 10");

    if ( $related ) {

    foreach ($related as $related_post) {

    ?>

  • post_title; ?>

  • 暂无相关文章

方法三:根据作者相关获取文章(这个比较少用,因为基本都是我们自己发)

该方法是获取该文章作者的其他文章来充当相关文章,代码如下:

该作者的相关文章

    $post_author = get_the_author_meta( 'user_login' );

    $args = array(

    'author_name' => $post_author,

    'post__not_in' => array($post->ID),

    'showposts' => 10, // 显示相关文章数量

    'orderby' => date, // 按时间排序

    'caller_get_posts' => 1

    );

    query_posts($args);

    if (have_posts()) :

    while (have_posts()) : the_post(); update_post_caches($posts); ?>

  • 暂无相关文章

以上代码亲测可以使用,请大家多多拍砖,多多交流。

相关主题