Jump to content
IPS Community Suite 简体中文

Search the Community

Showing results for tags 'seo'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Public docs
  • Server Softwares
    • IPS
    • WordPress
  • 其它
    • Scratch
    • Python
    • Ubuntu & LinuxMint
    • Softwares
    • WordPress Plugins

Blogs

  • Dev

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Found 3 results

  1. 本文介绍和 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 效果。
  2. 本文记录如何改进 IPS Community Suite 博客的描述生成方法。 IPS Community Suite 原有的博客描述生成方法 在文件 applications/blog/sources/Blog/Blog.php 中 public function metaDescription() { if( $this->member_id ) { return strip_tags( $this->desc ); } return parent::metaDescription(); } 同样没有换行和过滤空白字符。 改进后的 IPS Community Suite 博客描述的生成方法 public function metaDescription() { if( $this->member_id ) { $desc = str_replace(array("\n",'&nbsp;&nbsp;','&nbsp;',' '), array('','','',''), strip_tags( $this->desc )); return $desc; } return parent::metaDescription(); } 改进后,会滤除换行和空白字符,对 SEO 有一定的效果。
  3. 本文简单记录下如何修改 IPS Community Suite 中博文的 描述 meta 标签内容生成方法的改进。 IPS Community Suite 原有的生成方法 在文件 system/Content/Item.php 中: public function metaDescription() { $return = NULL; if( isset( $_SESSION['_findComment'] ) ) { $commentId = $_SESSION['_findComment']; unset( $_SESSION['_findComment'] ); $commentClass = static::$commentClass; if( $commentClass !== NULL ) { try { $comment = $commentClass::loadAndCheckPerms( $commentId ); $return = $comment->content(); } catch( \Exception $e ){} } } if ( $return === NULL ) { if ( isset( static::$databaseColumnMap['content'] ) ) { $return = parent::content(); } else { $return = $this->mapped('title'); } } if ( $return ) { $return = preg_replace( '#\n{1,}#', "\n", trim( str_replace( '&nbsp;', ' ', strip_tags( preg_replace('#(<(script|style)\b[^>]*>).*?(</\2>)#is', "$1$3", $return ) ) ) ) ); if ( mb_strlen( $return ) > 160 ) { $return = mb_substr( $return, 0, 157 ) . '...'; } } return $return; } 这个方法是 IPS 用来生成博文的 描述 标签的,但是生成的描述中有换行,这不太好,所以需要改进。 改进后的 IPS Community Suite 博文描述生成方法 public function metaDescription() { //return '假装这是Item的描述 ItemDescription'; $return = NULL; if( isset( $_SESSION['_findComment'] ) ) { $commentId = $_SESSION['_findComment']; unset( $_SESSION['_findComment'] ); $commentClass = static::$commentClass; if( $commentClass !== NULL ) { try { $comment = $commentClass::loadAndCheckPerms( $commentId ); $return = $comment->content(); } catch( \Exception $e ){} } } if ( $return === NULL ) { if ( isset( static::$databaseColumnMap['content'] ) ) { $return = parent::content(); // 获取第一个自然段 $return = substr( $return , 0, strpos( $return , '</p>' ) + 4 ); // 过滤特殊字符 $return = str_replace(array("\n",'&nbsp;&nbsp;','&nbsp;',' '), array('','','',''), strip_tags($return )); } else { $return = $this->mapped('title'); } } if ( $return ) { $return = preg_replace( '#\n{1,}#', "\n", trim( str_replace( '&nbsp;', ' ', strip_tags( preg_replace('#(<(script|style)\b[^>]*>).*?(</\2>)#is', "$1$3", $return ) ) ) ) ); if ( mb_strlen( $return ) > 160 ) { $return = mb_substr( $return, 0, 157 ) . '...'; } } return $return; } 改进之后,博文页面的 meta 标签 description 就不会再有换行了。
×