Создание шаблонов страниц и сообщений без файла шаблона

Обычно, если вы хотите настроить тип публикации (generic: ie all) в WordPress, вы создадите для него шаблон пользовательской страницы, то есть, следуя иерархии шаблонов, страница будет настроена на основе ее имени и где она попадет в эту иерархию. Дальше влево в следующей графике шаблона, сначала он будет выбран. Если мне когда-либо понадобилось создавать пользовательский формат страницы, это то, что я сделал.

Иерархия шаблонов WordPress

С помощью pages (а не posts ) вы можете выбрать шаблон по умолчанию, который относится к странице. Обычно это относится к тому, будет ли страница иметь боковую панель или нет, поскольку по умолчанию будет иметь боковую панель, и обычно будет вариант «полная ширина».

Недавно я использовал плагин, который имеет приятную возможность сделать каждую страницу уникальной в редакторе переднего плана. Что-то, что, по моему мнению, было возможно только через специальный файл шаблона страницы / сообщения для этого контента.

То есть, не создавая персонализированный тип сообщения или файл шаблона, плагин использует некоторый крючок, благодаря которому формат страницы настраивается только для этой записи.

Я хочу сделать что-то подобное, где я могу диктовать, что большинство моих страниц соответствуют стандартным форматам, но для некоторых страниц, которые каким-то образом или иначе идентифицированы, я хочу, чтобы этот формат изменился, и я бы предпочел, чтобы это было в порядке или фильтр, а не через дополнительные страницы.

Изменения в основном основаны на CSS.

В идеале, я хотел бы иметь раскрывающийся список, похожий на «шаблон по умолчанию», который позволяет мне выбрать, какой из них использовать и применять к этой странице.

Для аргумента и примера значение по умолчанию будет неизменным, а другой вариант изменит max-width и background-color класса .col-ful а также дополнительную область виджетов между контентом и нижним колонтитулом.

Я знаю, что я мог бы просто создать собственный тип страницы и использовать ее для этих страниц, но я хочу по-прежнему использовать принцип пользовательского наименования иерархии, чтобы при необходимости дополнительно настроить страницу. т.е. я хочу, чтобы он вел себя за пределами содержимого, как раскрывающийся список шаблонов по умолчанию, но все же допускает настраиваемые форматы контента, разрешенные именованными типами страниц. PLUS Я хочу, чтобы шаблон был доступен для нескольких типов сообщений, а не только для страниц.

Мне нравится идея, предложенная LSW-Mo в комментариях, и изначально я думал, что это сработает, однако свойство, которое мне нужно изменить, выше в классе .col-ful div (выделено на изображении). Я хочу переопределить атрибут max-width который просто слишком низкий для моей симпатии (видимый выше в правой панели).

Если кто-нибудь может предложить, как изменить это в соответствии с описанием LSW-Mo, это будет оценено по достоинству.

введите описание изображения здесь

Solutions Collecting From Web of "Создание шаблонов страниц и сообщений без файла шаблона"

В итоге я получил эту работу, и это было намного проще, чем я ожидал благодаря комментариям @ LWS-Mo и @Milo.

На моей странице я добавляю custom field с name=add_class и key=extra-wide .

Затем я использую плагин code snippets (я не хотел его в function.php темы, так как я переключаюсь между основной темой и дочерней темой. Кроме того, в фрагментах кода я могу выборочно включать и отключать различные фрагменты). Используя этот плагин, я добавил код:

 add_filter( 'body_class', 'add_extra_body_classes' ); function add_extra_body_classes( $classes ) { global $post; $my_post_meta = get_post_meta($post->ID, 'add_class', true); if ( ! empty ( $my_post_meta ) ) { return array( $my_post_meta ); return array_merge( $classes, array( $my_post_meta ) ); } return $classes; } 

Затем в пользовательском CSS я добавил:

 .extra-wide #page #content .col-full{ max-width: 95%; } 

что позволило мне перейти к первому уровню, которое мне было необходимо. Оттуда он просто следил за прыгающим мячом и менял CSS, чтобы получить то, что я хотел.