我怎样才能缩短这本书的长度?

时间:2015-04-03 作者:user3930317

我使用WordPress作为我的CMS,我网站的一个组件是master slider。这是一个在滑块中显示帖子的插件。它会获取完整的帖子标题并将其放在滑块中。我想缩短这个标题。此代码正在生成标题:

$value = $post->post_title;
如何修改此代码以获取标题的前25个字符,然后添加“…”对这个?

1 个回复
最合适的回答,由SO网友:Jen 整理而成

因为这是在插件中,所以您实际上不想直接修改插件文件本身。如果你这样做,你将永远无法更新插件而不覆盖你的工作,并且需要找到它并再次添加你所做的工作。

相反,有一个filter 在插件中为这种情况设置:

// in the plugin file:
function msp_get_template_tag_value( /* variables */ ) {
  // ... other stuff we don\'t care about
  // line 1037:
  return apply_filters( \'masterslider_get_template_tag_value\', $value, $tag_name, $post, $args );
}
第1037行是一个过滤器,这意味着您可以修改插件创建的内容,并将其替换为您想要的任何输出。为此,在函数中添加以下内容。主题中的php文件:

add_filter(\'masterslider_get_template_tag_value\', \'wpse183153_shorten_master_slider_title\', 10, 4);
function wpse183153_shorten_master_slider_title($value, $tag_name, $post, $args){
  if ( \'title\' != $tag_name ) {
    return $value;
  }

  $short_title = $value;
  if( strlen($value) > 50) {
    $short_title = explode( "\\n", wordwrap( $value, 50));
    $short_title = $short_title[0] . \'...\';
  }
  return $short_title;
}
此函数用于检查当前正在编辑的标记是否为标题。如果不是,那么它只是跳过,让内容保持原样。如果是标题,则检查值是否超过50个字符;如果是,则截断该值并附加“…”。

结束

相关推荐

如何在WordPress主题中加载自定义php文件

我刚刚用wordpress创建了一个网站,并为其定制了一个主题。这是我的主题目录/themes/customtheme/ -index.php -header.php -footer.php -blog.php .... 索引。php包括页眉、页脚、显示在我的网站上的信息,以及指向我的博客页面的链接。博客文件看起来和普通博客网站一样。我可以知道如何在索引中使用超链接(a href)吗。php下的主题目录,以便它可以提示到博客。php何时单击?博客