WordPress子主题


=Start=

缘由:

最近在做博客/主机迁移,因为之前有对WordPress的默认主题做过一些个性化修改(直接在该主题目录下的文件中进行的修改),所以在重装WordPress的时候这些修改会被丢弃,之前都是不厌其烦的手工粘贴进去,但后来想想这也太low了,一点都不美好。然后就去网上搜索了一下,知道了「WordPress子主题」这个概念,能很好的解决WordPress主题升级导致的个性化修改丢失的问题,在此记录一下相关内容,方便以后参考。

正文:

参考解答:
什么是 WordPress子主题 ?

WordPress子主题也是一个主题,它继承了另一个主题——父主题——的功能,并允许你对父主题的功能进行修改,或者添加新功能。

创建一个子主题是很简单的。创建一个目录,将格式编写正确的 style.css 文件放进去,一个子主题就做成了!只需要对 HTML 和 CSS 具有基本的了解,你就可以通过创建一个非常基本的子主题 来对一个父主题的样式和布局进行修改和扩展,而不需要对父主题的文件作任何修改。通过这样的方式,当父主题被更新的时候,你所做的修改就可以保存下来。

因为这个原因,我强烈推荐你使用子主题的方式来对主题进行修改。

如果你对 PHP, WordPress Templates,和 WordPress Plugin API 有个基本的理解,理论上来讲,你可以使用子主题对父主题的每一个方面进行扩展,而不需要对父主题的文件进行任何修改。

子主题的目录结构

子主题放在wp-content/themes目录下属于自己的目录里(和其它的主题目录并列)。下面的结构显示的就是子主题和它的父主题(TwentyTen)在典型的WordPress目录结构中的位置:

  • public_html
    • wp-content
      • themes (主题存放的目录)

        • twentyten (示例中父主题TwentyTen的目录)

        • twentyten_child (子主题存放的目录,可以任意命名)

          • style.css (子主题中不可或缺的文件,文件名必需为style.css)

这个文件夹里面可以少至只包含一个style.css文件,也可以包含多至一个完整WordPress主题所拥有的文件

  • style.css (必需)
  • functions.php (可选)
  • Template files (可选)
  • Other files (可选)
我的子主题设置
  1. style.css (个性化设置)
  2. functions.php (添加一些有用/安全的功能)
  3. header.php (添加「返回至顶部」这个功能)(div.go-top)
  4. content.php (添加「显示摘要」这个功能)
  5. footer.php (添加「页脚显示内容」这个功能)(cnzz/百度统计)
  6. single.php (添加「原创文章声明」这个功能)
参考链接:

=END=

,

《 “WordPress子主题” 》 有 18 条评论

  1. WordPress中查看文章访问次数的插件(post view count)
    https://wordpress.org/plugins/search/view+count/
    https://wordpress.stackexchange.com/questions/tagged/statistics?sort=votes&pageSize=15

    17 WordPress Functions.php File Hacks
    https://www.elegantthemes.com/blog/tips-tricks/17-wordpress-functions-php-file-hacks

    32 Extremely Useful Tricks for the WordPress Functions File
    http://www.wpbeginner.com/wp-tutorials/25-extremely-useful-tricks-for-the-wordpress-functions-file/

    【wordpress】一些优化代码汇总-functions.php(模板函数)
    http://blog.csdn.net/wzl505/article/details/60869788

    wordpress中functions.php常添加的代码
    http://www.lmlblog.com/1145.html

    小心WordPress主题functions.php包含的恶意代码
    https://yusi123.com/3585.html
    http://80×86.io/post/wordpress-theme-malicious-code-analysis

  2. 使用 WP-Postviews 统计日志浏览次数
    http://blog.wpjam.com/article/wp-postviews/
    解决网站静态缓存后WP-PostViews插件不计数的问题
    https://zhangge.net/5123.html

    WordPress 技巧:禁用 RSS Feed #测试OK
    http://blog.wpjam.com/m/disable-rss-feeds-on-your-blog/
    http://www.wpcourse.com/wordpress-rss-disable.html

    当WordPress搜索结果中只有一篇文章时自动跳转到该文章具体页面 #测试OK
    https://www.91wordpress.com/1318.html

    WordPress内容被复制后自动添加文章链接 #通过在每一篇文章的HTML中插入一段js代码,监控 document.oncopy 事件
    https://www.91wordpress.com/1313.html

    WordPress教程:超过一定时间的老文章顶部显示自定义信息 #测试OK
    https://www.91wordpress.com/1284.html

    WordPress优化技巧:删除CSS和JS文件后面的版本号 #测试OK
    https://www.91wordpress.com/862.html

  3. WordPress 自定义字段(Custom Fields)详细介绍和使用
    http://blog.wpjam.com/article/wordpress-custom-fields/
    `
    什么是 WordPress 自定义字段
    WordPress 自定义字段工作机制
    如何在博客上显示自定义字段的数据
    WordPress 自定义字段高级用法
      输出撰写日志时候的心情
      输出撰写日志时候的参考书籍
      统计当前日志的浏览数
    WordPress 自定义字段扩展了 WordPress
    更多 WordPress 自定义字段使用技巧
      WordPress 技巧:在 WordPress 后台隐藏自定义字段
      WordPress 技巧:设置只有注册用户才能浏览特定的内容
      WordPress 技巧:使用自定义字段给日志单独加载 JS 脚本
      使用 WordPress 自定义字段来显示日志缩略图
    使用 WordPress 自定义字段创建的插件
    `

  4. WP-postviews如果想在前台呈现的话,需要修改主题中的 content.php 文件,找到「 `class=”comments-link”` 」那一行,在其后面添加如下一行:
    `
    if(function_exists(‘the_views’)) { the_views(); }
    `
    即可实现在前台展示页面的访问次数的功能。

    WordPress浏览次数统计
    https://www.wpdaxue.com/wp-postviews.html
    https://www.wpdaxue.com/wordpress-postviews-code.html
    http://blog.wpjam.com/article/wp-postviews/
    http://blog.wpjam.com/m/memcached-postviews/
    http://zmingcx.com/no-plugin-wordpress-reads.html
    http://www.qaulau.com/wordpress-browse-number/

  5. 在约 5500 个被感染的 WordPress 站点上发现后台登录页存在键盘记录
    https://www.bleepingcomputer.com/news/security/keylogger-found-on-nearly-5-500-infected-wordpress-sites/
    `
    正如我们已经提到的,恶意代码驻留在WordPress主题的 function.php 文件中。 您应该删除 add_js_scripts 函数和所有提及 add_js_scripts 的 add_action 子句。 考虑到这个恶意软件的键盘记录功能,你应该考虑所有的WordPress密码,所以清理的下一个强制性步骤是改变密码(实际上强烈建议在任何网站破解之后)。 不要忘记检查您的网站是否也有其他感染。
    `

  6. WordPress LaTeX插件更换记录
    https://www.biaodianfu.com/wordpress-latex-plugin.html
    `
    由于自己的博客要插入很多的公式,所以需要依赖LaTeX插件来帮忙实现。先前一直使用的是WP QuickLaTeX。但经过使用发现其性能随着文章量的增加越来越慢。

    原因是WP QuickLaTeX会将公式提前生成图片,图片存储在 /wp-content/ql-cache。我看了下我的我的目录下共产生了15912个文件。导致查找文件的速度非常非常慢,拖慢了网站整体的速度。另外每次发布文章时生成图片也会占用CPU资源。

    解决方案:使用MathJax-LaTeX进行替换WP QuickLaTeX

    优点:MathJax-LaTeX仅保存LaTeX语法。具体渲染由前端执行。所以不会产生生成大量图片导致的问题。
    `
    https://tex.stackexchange.com/questions/27633/mathjax-inline-mode-not-rendering

  7. https://developer.wordpress.org/themes/advanced-topics/child-themes/
    `
    子主题允许您更改站点外观的小方面,但仍然保留主题的外观和功能。要理解子主题是如何工作的,首先要理解父主题和子主题之间的关系。

    What is a Parent Theme?
    父主题是一个完整的主题,它包含了所有需要的WordPress模板文件和使主题工作的资源。所有的主题——不包括子主题——都被认为是父主题。

    What is a Child Theme?
    正如上所述,子主题继承父主题及其所有功能的外观和感觉,但是可以用于修改主题的任何部分。通过这种方式,自定义与父主题的文件是分离的。使用子主题可以让您升级父主题,而不会影响您对站点所做的自定义。

    子主题的一些优点:
    使您的修改可移植和复制;
    保持自定义与父主题函数分离;
    允许父主题被更新而不破坏你的修改;
    节省开发时间,不需要重新造轮子;
    同时也是开始学习主题开发的好方法。
    注意:如果您正在进行广泛的自定义——除了样式和一些主题文件之外——创建父主题可能是比创建子主题更好的选择。创建父主题允许您在将来避免不喜欢的代码所带来的问题。这需要根据具体情况来决定。

    How to Create a Child Theme
    1. Create a child theme folder
    2. Create a stylesheet: style.css
    3. Enqueue stylesheet

    Activate child theme
    Adding Template Files
    Using functions.php
    Referencing or Including Other Files
    Enqueueing Styles and Scripts
    Special Considerations
    Post Formats
    RTL Support
    Internationalization
    `

  8. wordpress二次开发主题如何不被更新[wordpress子主题教程详解]
    https://www.admin122.com/2124.html

    「网站」当WordPress主题需要升级时,怎么保存之前主题所更改的设置
    https://zhuanlan.zhihu.com/p/84528098

    WordPress主题二次开发-使用子主题的详细说明
    https://www.themepark.com.cn/wordpresszteckf-syzztdxa.html

    WordPress主题制作 之 添加自动检测更新和一键升级功能
    https://www.wpdaxue.com/automatic-updates-for-commercial-themes.html

    为WordPress主题添加“自动更新”功能
    https://zmingcx.com/wordpress-theme-automatic-update-feature.html

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注