私はtwentyelevenに基づいて私の子供のテーマのサイドバーで新しいページテンプレートを作っています。twentevenvenにサイドバーを重複して固定
function twentyeleven_body_classes($classes) {
if (! is_multi_author()) {
$classes[] = 'single-author';
}
if (is_singular() && ! is_home() && ! is_page_template('showcase.php') && ! is_page_template('sidebar-page.php'))
$classes[] = 'singular';
return $classes;
}
add_filter('body_class', 'twentyeleven_body_classes');
それは、デフォルトのサイドバー-page.php以外の任意のテンプレートにbodyタグに「単数」クラスを追加し、この結果: それはtwentyelevenのfunction.phpに起因するこれに正しく表示されませんサイドバーのオーバーラップ。
私はfunctions.phpを使ってこの問題を解決することはできません。なぜなら、子テーマfunctions.phpは親テーマのものよりも先に読み込まれているからです($ classes配列を通過して単数要素を取り除くことはできません)。 親のfunctions.phpを編集したくないのですが、これは更新中に上書きされるため、最初は子テーマを使用する全体のポイントを奪います。
アイデア?
EDIT: これは、親のfunction.phpの後に、after_setup_themeアクションフックを使用して実行できるようです。
ここでエラーが発生します。
私のコードは次のとおりです。
add_action('after_setup_theme', 'childtheme_override');
function childtheme_override() {
add_filter('body_class', 'twentyeleven_child_body_classes');
}
function twentyeleven_child_body_classes ($classes) {
if (is_page_template('container-sidebar-page.php')) {
foreach ($classes as $key => $value) {
if ($value == 'singular') {
unset($classes[$key]);
$classes = array_values($classes);
}
}
return $classes;
}
信じられないほど、私はあまりにもこの最も通過しました。トレイルを燃やしてくれてありがとう。 –