Jump to content
IPS Community Suite 简体中文
Sign in to follow this  
ipscn

IPS 话题描述生成方法的改进

Recommended Posts

本文介绍和 IPB / IPS SEO 相关的话题/主贴的描述生成方法的改进。

IPS 话题原有的描述生成方法

在文件 applications/forums/modules/front/forums/topic.php 这个文件中,是这样的:

$metaDescription = strip_tags( $metaDescription );
\IPS\Output::i()->metaTags['description'] = \IPS\Output::i()->metaTags['og:description'] = mb_strlen( $metaDescription ) > 160 ? ( mb_substr( $metaDescription, 0, 157 ) . '...' ) : $metaDescription;

先使用 PHP 方法 strip_tags 去除字符串中的 HTML 标签,然后,保证描述长度不大于160个字符, 其实,注重 SEO 的文章的描述的最佳长度是 不大于 120 个字符,最大不能多于 160 个字符,这无可厚非。

但是这生成的描述,不尽如人意,下面先对它进行下初步改造。

 

IPS / IPB 话题描述生成方法的改进

针对上述不足,改进如下:

隐藏内容
回复可见

但在实际操作中, 帖子中源码(也就是文本模式)模式编辑时的 

<!--more-->

标签会在存储时,被过滤掉,所以简单点儿: 只以第一个自然段作为帖子的描述,比较合适:

	// 获取第一个自然段
	$metaDescription = substr( $metaDescription , 0, strpos( $metaDescription , '</p>' ) + 4 );
	//简单过滤特殊字符
	$metaDescription = str_replace(array("\n",'&nbsp;&nbsp;','&nbsp;','  '), array('','','',''), strip_tags( $metaDescription ));
 	// 页码
	$page = ( isset( $_GET['page'] ) ) ? intval( $_GET['page'] ) : 1;
	if($page>1){
		$metaDescription =  $metaDescription .' 第'.$page.'页' ;
	}
	//长度限制
 	$metaDescription = mb_strlen( $metaDescription ) > 160 ? ( mb_substr( $metaDescription, 0, 157 ) . '...' ) : $metaDescription;

	\IPS\Output::i()->metaTags['description'] =  \IPS\Output::i()->metaTags['og:description'] = $metaDescription;

 

结论

应该写个 IPB /  IPS SEO 相关的应用,以强化它的 SEO 效果。

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×