找不到如何覆盖子主题中的文件

时间:2016-09-08 作者:Brandon

我使用catch-base主题作为父主题,并在函数中包含以下代码。php

<?php
function my_theme_enqueue_styles() {

$parent_style = \'catch-base\';
wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\' );
wp_enqueue_style( \'child-theme\',
    get_stylesheet_directory_uri() . \'/style.css\',
    array( $parent_style )
);
}
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
?>
我一生都不知道如何通过子主题覆盖任何模板文件。我在catchthemes网站上尝试过这个建议,https://catchthemes.com/blog/create-child-theme-wordpress/ 但是仅仅使用相同的目录结构是行不通的。

我还尝试在“add\\u action”函数之后添加此代码,但它会破坏站点并出现“拒绝访问”错误。

require_once( get_stylesheet_directory() . \'/inc/catchbase-structure.php\' ); 
我错过了什么?

2 个回复
SO网友:Brandon

catch-base主题将每个函数包装在if语句中,以便在必要时进行修改。

实例

if (! function_exists(\'function_name\')) { 
    /* some code */
}
所以我最后做的就是把它添加到我的函数中。子主题中的php文件,它重写了函数,并显示了我添加的额外div!

function function_name() {
    /* some modified code */
}

SO网友:Tom J Nowell

子主题允许您覆盖通过模板层次结构或get_template_part 例如index.phparchive.php.

子主题不能以这种方式替换任意文件,例如CSS文件,functions.php, 使用时包含的文件requireinclude, 等

如果父主题包含要删除或替换的函数,请选择以下选项:

如果过滤器或动作已添加到父主题中,请将其取消挂钩(请注意,事情发生的顺序很重要,如果尚未添加,则无法取消挂钩!)

  • 如果父主题提供了设置,则关闭该功能(请注意顺序/优先级,您不能将尚未排队的脚本或样式退出队列!顺序很重要!)
  • 相关推荐

    About wordpress child themes

    我对WordPress和儿童主题有一些问题。据我所知,如果我不想在更新主题时失去任何东西,使用子主题是很重要的。我是WordPress的初学者,到目前为止,我一直在使用PageBuilder(管理面板上的板载自定义选项)自定义我的网站,并在“附加CSS”选项中加入几行CSS。所有这些都是在主主题上完成的(只是玩转尝试学习),现在我想开始使用一个儿童主题。问题如下:我不知道我是否可以像通过管理界面设计父主题那样设计我的子主题,或者我是否必须通过文本编辑器(在我的计算机上,然后通过FTP等方式上传)对所有内容