覆盖Theme-Options.php文件

时间:2013-01-30 05:05:40

标签: php wordpress

我很难从父母的主题 - options.php中删除调用。我的问题是这样的:我的父主题要求标题不是来自header.php,我可以轻松替换,但是通过将url路径放置到图像上,可以从theme-options.php替换为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;

}

所以我猜我可以删除这个功能并用我自己的替换它并改变值?

1 个答案:

答案 0 :(得分:1)

如果他们在require()init等钩子调用的函数内调用setup_theme,那么在不编辑父项的情况下执行此操作的唯一方法是:你可以这样做:

remove_action( 'hook', 'their_function_name' );

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

add_action( 'hook', 'your_function_name' );

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