wordpress使用twentyfifteen模板做子主题所遇问题的解决及记录

💡 原文中文,约2300字,阅读约需6分钟。
📝

内容提要

使用WordPress twentyfifteen主题时,直接修改父主题会在升级后失效,应改用子主题。作者记录了两种修改:一是让首页文章列表显示摘要而非全文,需复制content.php并将the_content改为the_excerpt,再调整index.php及摘要字数;二是修改英文标签(如Edit、Next、Previous、Continue reading等),通过子主题functions.php重定义相关函数实现,中文需转UTF-8编码。

🔎

延伸解读

子主题修改的必要性

文章指出直接修改父主题会在升级后失效,因此推荐使用子主题。子主题的修改独立于父主题,父主题升级不会覆盖子主题的改动,这能有效保护自定义设置,避免重复劳动。

首页摘要显示的实现步骤

要让首页显示摘要而非全文,需复制父主题的content.php并重命名为content-excerpt.php,将the_content改为the_excerpt,再修改index.php中的get_template_part调用为content-excerpt。摘要字数可通过修改wp-includes.php中的excerpt_length参数调整。

英文标签的修改方法

对于Edit、Next、Previous等直接写在模板文件中的标签,可在子主题的content.php或single.php中直接修改。而Continue reading等通过函数输出的标签,需复制父主题的functions.php到子主题,并重定义相关函数,如twentyfifteen_excerpt_more,修改其中的文本并确保UTF-8编码。

编码注意事项

修改英文标签为中文时,必须将中文字符转换为UTF-8编码,否则页面会显示乱码。这一点在直接修改模板文件或函数中的字符串时都需注意,是保证中文正常显示的关键。

❓

Q&A

为什么修改WordPress主题后升级会失效?

直接修改父主题,在主题升级后修改会丢失,因为升级会覆盖文件。推荐使用子主题进行修改,这样父主题升级不会影响子主题的修改。

如何让twentyfifteen主题首页显示文章摘要而不是全文?

复制父主题的content.php为content-excerpt.php,将the_content改为the_excerpt;然后在子主题的index.php中将get_template_part( 'content', get_post_format() )改为get_template_part( 'content-excerpt', get_post_format() )。

如何调整twentyfifteen主题摘要显示的字数?

修改WordPress目录下的wp-includes.php文件(实际为wp-includes/formatting.php或通过过滤器),找到$excerpt_length = apply_filters( 'excerpt_length', 55 );,将数字55改为你想要的字数。

在twentyfifteen子主题中如何修改英文标签如Edit、Next、Previous?

这些标签可以直接在子主题目录中的content.php或content-excerpt.php和single.php文件中找到对应英文修改。如果使用中文,需转换为UTF-8编码,否则显示乱码。

如何修改twentyfifteen主题的“Continue reading”标签?

复制父主题的functions.php到子主题并清空,然后从父主题的inc/template-tags.php中复制twentyfifteen_excerpt_more函数到子主题的functions.php,修改其中的'Continue reading %s'为中文(需UTF-8编码)。

为什么在子主题中不能直接复制inc/template-tags.php文件来修改?

因为twentyfifteen主题的英文标签直接写在inc/template-tags.php中,但子主题不能直接复制该文件来覆盖,需要通过functions.php重定义相关函数来实现修改。

🏷️

标签

➡️

继续阅读