WordPress Customizr主题子主题模板覆盖实现方法咨询
解决Customizr主题自定义问题:使用子主题覆盖模板文件
我太懂搜了一小时还找不到解决方案的烦躁了!说实话Customizr这个主题名确实有点坑,搜的时候很容易和各种“定制”相关的内容混在一起,我之前折腾它的时候也差点因为这个绕了大弯。
根据我折腾这个主题的经验,用子主题来覆盖原主题文件是最稳妥的方式——既不会破坏原主题,还能保留自定义修改不受主题更新影响。具体步骤是这样的:
第一步:创建子主题核心文件
在你的WordPress安装目录的wp-content/themes/文件夹下,新建一个子主题文件夹,比如叫customizr-child。然后在这个文件夹里创建两个必要文件:style.css:用来定义子主题的基本信息,内容可以参考下面的示例(记得替换成你自己的信息):/* Theme Name: Customizr 子主题 Description: 基于Customizr主题的自定义子主题 Author: 你的名字 Template: customizr Version: 1.0.0 */functions.php:用来加载父主题的样式(如果需要的话),代码如下:add_action( 'wp_enqueue_scripts', 'customizr_child_enqueue_parent_styles' ); function customizr_child_enqueue_parent_styles() { wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style') ); }
第二步:复刻父主题路径覆盖目标文件
你提到原主题的templates/parts/loop.php关联了templates/parts/content/post-lists/post_list_alternate.php这个文件,那就在子主题文件夹里完全复刻这个路径:customizr-child/templates/parts/content/post-lists/。把父主题里的post_list_alternate.php文件复制到这个子主题的路径下,之后你对子主题里的这个文件做任何修改,都会自动覆盖父主题的原文件效果。
这里有个关键注意点:路径必须完全和父主题一致,哪怕少一个层级或者文件夹名写错,都不会生效。另外,激活子主题之后,所有自定义修改都要在子主题里操作,父主题尽量保持原样,这样后续主题更新的时候,你的自定义内容也不会丢失。
内容的提问来源于stack exchange,提问作者Steffen
相关产品推荐
相关产品推荐

