前几天遇到一个客户需要给Wordpress文章内容里面增加随机文章,并要求需要随机显示同分类或者同标签的文章,我们知道在文章里面显示同分类或者同标签的文章是可以给文章增加内链功能,加强网站的SEO优化效果的,这里小编就将如何去实现这个功能分享出来,一个是插件版,一个是代码版。
插件版:
1.在后台 插件 安装插件里面搜索:cyoud-first-paragraph
2.安装插件并启用,然后可以去后台 设置里面设置插件相关内容
代码版:
有一定动手能力的朋友,可以将以下代码放在主题模板函数模板文件里面
<?php
//文章首段内容下面增加随机文章
if ( ! function_exists( 'hitheme_related_post_firstp' ) ) {
function hitheme_related_post_firstp($content, $adc) {
$keyword = "</p>";
$position = strpos($content, $keyword) + strlen($keyword);
if($position != 4) : return substr_replace($content, $adc, $position, 0); else: return $content; endif;
}
}
if ( ! function_exists( 'hitheme_related_posts' ) ) {
function hitheme_related_posts() {
wp_reset_postdata();
global $post;
$tags = wp_get_post_tags($post->ID, array('fields'=>'ids')); //同标签下
$cats = wp_get_post_categories($post->ID, array('fields'=>'ids')); //同分类下
$args = array(
'no_found_rows' => true,
'update_post_meta_cache' => false,
'update_post_term_cache' => false,
'ignore_sticky_posts' => 1,
'orderby' => 'rand',
'post__not_in' => array($post->ID),
'category__in' => $cats, //文章分类,如果是标签请填写: $tags
'posts_per_page' => '5' //文章数量
);
$query = !isset($break)?new WP_Query($args):new WP_Query;
return $query;
}
}
if ( ! function_exists( 'hitheme_insert_fpost_related' ) ) {
function hitheme_insert_fpost_related( $content ) {
$related = hitheme_related_posts();
if ( $related->have_posts() ):
?>
<?php $frelated .= '<div class="related_hitheme"><ul>'; ?>
<?php while ( $related->have_posts() ) : $related->the_post(); ?>
<?php $frelated .= '<li><a href="'.get_the_permalink().'" title="'.get_the_title().'">'.get_the_title().'</a></li>'?>
<?php endwhile; ?>
<?php $frelated .= '</ul></div>';?>
<?php
wp_reset_postdata();
wp_reset_query();
return hitheme_related_post_firstp( $content , $frelated);
endif;
}
}
add_filter( 'the_content', 'hitheme_insert_fpost_related' );
两个方法,我更推荐使用第二个方法,因为这样可以减少一个插件,免得因为插件太多,导致网站速度变慢!