Я использую тему TwentyTen для создания дочерней темы, но не могу избавиться от шаблона страницы «Один столбец, без боковой панели», который находится в родительской теме TwentyTen.
Я думал, что просто скопировать его и удалить содержимое поможет, но, похоже, нет. Кто-нибудь знает как это сделать? Я уверен, что это очень просто.
Спасибо
осу
Переопределить этот шаблон было бы намного проще, чем избавиться от него. Как раз по логике.
Я не утверждаю, что это эффективная идея (поздно здесь), но это уничтожит ее с экрана редактирования:
Спасибо за это, это выглядит как хорошее решение — когда вы говорите о переопределении шаблона, вы все равно имеете в виду просто включение туда шаблона с одним столбцом? Или вы имеете в виду переопределение его с помощью шаблона, который я действительно хочу использовать (например, назовите его «Один столбец», но на самом деле он имеет 2 или 3 столбца?)?
@Osu Я имел в виду переопределение вашего собственного аналогичного шаблона. Что касается логики, дочернюю тему легко изменить и добавить в шаблоны родительской темы, но их сложно отключить. В основном дочерняя тема должна делать больше, чем родительская тема, а не меньше. И логика кода следует этому принципу.
Ах хорошо. Спасибо, что прояснили это. Тогда я создам для них шаблон с одним столбцом. Ваше здоровье
Для тех, кто хочет удалить тему из выпадающего списка с помощью jQuery, это другой подход (но не уверен, что это лучший способ): pastie.org/3710683
Внутренние элементы @brasofilo, связанные с темой, подверглись серьезному рефакторингу и изменениям API в версии 3.4, поэтому многие старые вещи не будут работать.
Это должен быть обновленный принятый ответ для WP 3.9+.
Ссылка вне сайта становится бесполезной, если ссылка изменяется или удаляется. Это также не делает попытки фактически ответить на вопрос
Достаточно справедливо, пример добавлен.
Билет Trac: core.trac.wordpress.org/ticket/21891.
WordPress 3.9 представляет
theme_page_templates
фильтр.В приведенном ниже примере из дочерней темы Twenty Fourteen
functions.php
показано, как удалить шаблон «Страница участника»:Расширяя ответ @Rarst, вот более общий подход, который не привязан к конкретной теме, но может использоваться внутри functions.php вашей собственной дочерней темы для уничтожения любых шаблонов страниц родительской темы, от которых вы хотите избавиться.
Таким образом, вы можете использовать его в файле functions.php вашей дочерней темы следующим образом:
Здесь я просто показываю, что вам не нужно передавать часть «.php», если вы этого не хотите.
Или:
remove_template( "sidebar-page" );
— вам не нужно передавать массив, если вы хотите изменить только один файл.В ядре WP (3.9) появился новый фильтр для удаления шаблонов страниц. Его можно использовать из дочерних тем.
Вот как этого добиться в TwentyTen (проверено на WP 3.9):
https://core.trac.wordpress.org/changeset/27297
http://boiteaweb.fr/theme_page_templates-hook-semaine-16-8033.html
Поскольку предыдущие ответы больше не работают здесь в текущих версиях WordPress, и был связанный вопрос, на который я только что ответил (апрель 2013 г.), используя выходной буфер PHP, я решил опубликовать ссылку на этот ответ.
Также только что опубликован плагин Omit Parent Theme Page Templates, который отфильтровывает все шаблоны страниц родительской темы из выпадающего списка шаблонов в метабоксе «Атрибуты страницы» при добавлении или редактировании «Страницы» WordPress.
10 июля 2012 г. — WordPress 3.4.1
Предыдущие ответы не работают, и, как сказал Рарст в комментарии:
Быстрое и грязное решение jQuery
Нет крючка для этого?
Если я следовал правильному пути, то здесь происходит «действие» (
/wp-includes/class-wp-theme.php
), и, похоже , здесь не за что зацепиться…