所以我一直在为一个网站构建一个儿童主题。想要将帖子格式添加到210个子主题。现在,my child主题的目标是尽可能从父级复制绝对最少的代码/模板。
我最初认为,如果我使用一个自定义函数在setup\\u主题之后使用add\\u action,向一个二十个子主题添加额外的post格式,它就会起作用。然而,这没有任何作用。类似这样的内容(有无两种现有格式都无关紧要):
function voodoochild_setup(){
add_theme_support( \'post-formats\', array( \'aside\', \'gallery\', \'link\' ) );
}
add_action( \'after_setup_theme\', \'voodoochild_setup\' );
我发现添加post格式的唯一方法是将整个twentyten\\u设置操作复制到我的子函数。php,并从那里编辑这一小部分,添加我的格式。
这很好用,我很冷静。我只是想知道是否有必要。有没有更好的方法可以将新格式注册到子主题上,而不必将那大块代码拖到子主题上?
最合适的回答,由SO网友:Dougal Campbell 整理而成
试着改变你的钩的优先级,就像这样:
add_action( \'after_setup_theme\', \'voodoochild_setup\', 11 );
这将确保它在设置完二十种格式后运行,从而获得最后的笑声。这就是我在Wordpresh上的做法。com。
SO网友:t31os
EDIT: Dougal在我写回复时发布了同样的内容,但我还是发布了我的回复,+1 Dougal。
父主题格式将覆盖子主题,反之亦然,这取决于首先发生的是哪个,尽管可以挂接到after_setup_theme
在父主题完成后,重新定义它们,如。。
add_action( \'after_setup_theme\', \'t31os_setup\', 11 );
function t31os_setup(){
add_theme_support( \'post-formats\', array( \'aside\', \'gallery\', \'image\', \'quote\' ) );
}
TwentyTens设置函数以优先级10(默认)运行,因此,只要在运行上述过滤器之后,我们就可以控制格式。