覆盖主题选项.php文件


Override Theme-Options.php file

我很难从父母的主题选项中删除呼叫.php。我的问题是:我的父主题不是从标题中调用徽标.php我可以轻松地替换它,而是从主题选项中替换.php通过将 url 路径放置在图像中,如下所示
require ( get_template_directory() . '/settings/theme-options.php' );

我想在子主题中"取消要求"此调用并添加一个函数来调用
require ( get_stylesheet_directory() . '/theme-options.php' );这样

我就可以修改选项文件并删除对 url 的调用。我以前遇到过类似的问题,并使用 unregister 函数修复了它,但我不确定如何"取消要求"对文件的调用。

任何帮助将不胜感激。

深入搜索后,有一个函数可以调用默认值,如下所示:

function max_magazine_default_options() {
$options = array(
    'logo_url' => get_template_directory_uri().'/images/logo.png',
    'favicon_url' => '',
    'rss_url' => '',
    'show_slider' => 1,
    'slider_category' => 0,
    'show_carousel' => 1,
    'carousel_category'=> 0,
    'show_feat_cats' => 1,
    'feat_cat1'=> 0,
    'feat_cat2'=> 0,
    'feat_cat3'=> 0,
    'feat_cat4'=> 0,
    'show_posts_list' => 1,
    'show_author' => 1,
    'show_page_comments' => 1,
    'show_media_comments' => 1,
    'ad468' => '<a href='.get_site_url().'><img src='.get_template_directory_uri().'/images/ad468.png /></a>',
    'inline_css' => '',
    'meta_desc' => '',
    'stats_tracker' => '',
    'google_verification' => '',
    'bing_verification' => '',
);
return $options;

}

所以我猜我可以删除这个函数并用我自己的函数替换它并更改值?

无需编辑父级即可执行此操作的唯一方法是,如果他们在钩子(如 initsetup_theme 等)调用的函数中调用require()。然后你可以简单地做:

remove_action( 'hook', 'their_function_name' );

然后,您必须将函数复制/粘贴到functions.php文件中,对其进行编辑,然后使用相同的钩子重新添加它:

add_action( 'hook', 'your_function_name' );

您可能还必须确保函数上的优先级(第三个参数)正确,以确保它正确覆盖它。