WordPress文章页段落首行缩进2字符的处理

因为WordPress是国外出品的框架平台,而目前采用的GeneratePress同样也是国外的轻量化的主题,所以对中文的支持还是比较欠缺的,比较明显的地方有不支持中文字符的扩展、不支持长页面自动分页、不支持段落首行自动缩进2字符等。毕竟我们写文章、写作文还是有个习惯,缩进2个字符,这是小学二年级就开始语文老是必须教会的了,否则你的小学作文不然得不到满分的。

目前的页面状态是这样的:

图1.默认情况下是段落首行顶格的
图2.默认情况下是段落首行顶格的2

看着其实还是挺别扭的是吧?尤其是我们习惯了分段缩进2个字符的。最笨的方法当然是切换到到文本编辑器的文本模式,直接空格2格就行。但是这明显会存在问题,一个是每次都要人工输入,可能会有遗漏,而且也增加了工作量。另外一个后期如果实现了自动化,那前期的文章手动增加的2个字符,程序自动化后再加2个字符缩进,那就会变成4个字符。那还不如现在默认的状态下没有缩进的。于是开始在网上找相应的解决方案了。果然WordPress是非常常用的平台,有大量的资料可以供参考。大概可以找到的资料有3种处理方式,一种是加入插件,另外一种是修改样式表,修改style.css文件,还有一种是增加相应的函数。

第一种插件的方式有多个插件,例如Plugin Tag: 首行缩进这个官网可以找到的插件。但是插件一方面相对简单,对我们初学者友好,不用看着从零开始,另外正因为没有了这个过程,只能看到结果,不知道具体实现的过程,所以本着折腾就是学习的目的,暂时不使用插件。

第二种修改样式表,打开style.css文件可以看到默认的样式已经有几千行了,按照网上给出的操作要求,需要找到对应的位置加入text-indent:2em;这段简单的代码。

首先找到主题对应控制文章代码的样式,entry-content ,可以通过开发者工具,一个检查就可以看到。然后在CSS中搜索entry-content。一共有11处,但是无论在哪里加上text-indent:2em这段代码,都是没有实现相应的目的。可能在这个主题中,控制首行缩进的,并非在style.css这个文件中。也有可能是加入的位置不对,总之,这个方法是失败了。

 

图3.开发者工具中找到对应的类

此路不通,那还有一路。在functions.php文件夹中加入一段简单的代码即可。

代码在各个网站上都有,大同小异。这次采用了如下的代码:

function Bing_text_indent($text){$return = str_replace(‘<p’, ‘<p style=”text-indent:2em;”‘,$text);return $return;}

add_filter(‘the_content’,’Bing_text_indent’);

直接加到functions.php文件最后一个?>之前就行。重新刷新页面,发现已经实现了相应的效果,首行已经自动缩进了2个中文字符。

图5.加入函数之后
图6.加入函数之后2

当然为了避免主题升级造成了functions.php文件的复原,是将代码单独装入了独立的PHP文件,再到functions.php中进行调用。当然这是另外一个处理的方式了。

后续有时间再把如果使用调用函数的方式记录下。