如何从子主题中删除WordPress主题选项

我通过为twentyeleven主题编写一个儿童主题来开始新项目。我很少设计新主题以使用twentyeleven主题中内置的任何选项(例如背景色等)。这些剩余的选项并没有真正伤害任何东西, 但是我想摆脱它们, 因为它们什么也没做。
麻烦的是, 主题选项在父主题的functions.php中声明, 该选项与子主题的functions.php文件一起加载(而不是替代)(因此我可以删除它们, 但它们将在下一次升级时返回)。
有没有办法从我的子主题中删除或禁用那些主题选项?也许类似于” remove_options()” 函数的东西?也许会达到这种效果的东西?换句话说, 问题是是否可以在不删除/覆盖添加了它们的原始函数的情况下删除theme_options。
【如何从子主题中删除WordPress主题选项】我敢肯定, 有了足够的推杆, 我可以用CSS或javascript隐藏该选项… 但是请来吧。
#1经过第二轮的挖掘…
这很简单!
你可以从此处开始来追溯我的步骤, 但是代码非常不言自明:

add_action( 'init', 'remove_crap' ); function remove_crap() {remove_custom_image_header(); remove_custom_background(); remove_theme_support('post-formats'); }

你可以在抄本中查找这些内容。 Remove_theme_support采用几个字符串之一, 这些字符串标识各种选项(除了后格式)。我遇到的唯一问题是它们需要从一个钩子中调用(你不能只是将它们转储到functions.php中)。我正在使用init, 但可能还有另一个更合适。
我唯一还没有弄清楚的是如何删除外观下的” 主题选项” 页面链接。我知道它是通过add_theme_page()添加的, 但是似乎没有方便的remove_theme_page()。
更新:我找到了!这是非常差的文档, 但是最后很容易做到:
add_action('admin_init', 'remove_twentyeleven_theme_options', 11); function remove_twentyeleven_theme_options() { remove_submenu_page('themes.php', 'theme_options'); }

在我的示例中, ” themes.php” 以” 外观” 菜单为目标, ” theme_options” 是在twentyeleven主题中使用的menu_slug。显然, 这些参数将根据你正在编辑的菜单或子菜单而有所不同。该页面将为你指明正确的方向。
ps:以下是从你不想使用的父主题中删除模板的方法:这对于我的确切问题不是必不可少的, 但是它与我想做的事情密切相关, 可能对尝试做我正在做的事情的人有用。
#2从子主题中删除在父主题中添加的主题支持的正确方法是, 在调用after_setup_theme操作中以低于父主题的优先级的方式调用remove_theme_support。
子主题中的functions.php文件在父主题之前被立即调用, 因此, 如果对after_setup_theme使用默认优先级, 则子主题的after_setup_theme最终在父主题之前被调用, 因此最终删除了不存在的主题你的孩子中的主题支持, 只能从运行after_setup_theme的父级中重新添加。
因此, 通过添加具有较低优先级的子动作, 可以确保在父项调用同一动作后调用该子动作。
所以:
// added to child's functions.phpadd_action( 'after_setup_theme', 'child_after_setup_theme', 11 ); // Parent theme uses the default priority of 10, so // use a priority of 11 to load after the parent theme.function child_after_setup_theme() { remove_theme_support('custom-background'); remove_theme_support('custom-header'); remove_theme_support('post-formats'); // ... etc. }

对于twentyeleven主题, 你还可以在孩子的functions.php中覆盖整个twentyeleven设置函数, 但这是实现这一目标的一种非常微妙的方法。
#3不幸的是, 在Wordpress中, 主题继承的工作方式是子主题功能只是” 添加” 到父主题功能上。
与style.css不同, 子主题的functions.php不会覆盖其父主题中的对应对象。相反, 除了父项的functions.php之外, 还会加载它。 (具体来说, 它是在父文件之前加载的。)(1)
因此, 直接回答上述问题时, WordPress处理主题和子主题的方式可能看起来不可能(2)。
就个人而言, 我不会担心在functions.php文件中包含那些额外的函数或变量。
  1. http://codex.wordpress.org/Child_Themes
  2. http://wordpress.org/support/topic/theme-options-in-child-theme
#4这是一个旧主题, 所以我只想添加是否有人进入这个地方并想要答案。我通过获取确切的文件, 进行复制并将其添加到子主题中来解决子主题。我有插件” 高级代码编辑器” , 所以我不需要进入FTP。复制你要编辑的特定文件, 以相同的名称和内容在子主题中创建一个新工作表, 然后在此处进行所需的编辑。它将首先获取子主题文件, 并且你的站点将被更新。

    推荐阅读