Автоматическое заполнение редактора записей/страниц HTML-сниппетами

7 сент. 2010 г., 01:27:47
Просмотры: 2.63K
Голосов: 5

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

Какие есть варианты добавления HTML-сниппетов на страницы и/или записи?

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

Или ещё лучше - можно было бы добавить пункт меню рядом с "Добавить новое", например "Добавить продающую страницу", который бы подгружал готовый шаблон.

Я хотел бы иметь файл в папке темы с названием salespage.html (или salespage.txt, или salespage.php - какой удобнее), содержимое которого использовалось бы для предзаполнения редактора.

Буду благодарен за любую помощь.

ОБНОВЛЕНИЕ: Благодаря ответу Chris_O ниже, я нашёл решение. Я дополнил предложенное решение возможностью загрузки контента из внешнего файла...

if (get_option("cb2_theme") == "salespage")
{
// добавлено для поддержки создания продающих страниц
add_filter( 'default_content', 'my_editor_content' );

function my_editor_content( $content ) {

    if(file_exists(ABSPATH.'wp-content/themes/clickbump_wp3/styles/salespage/default-content.html')){$content = file_get_contents(ABSPATH.'wp-content/themes/mytheme/styles/salespage/default-content.html');}else{$content = "Введите контент для продающей страницы. Теги h1-h3, цитаты и т.д.";}

    //$content = "Это кастомный контент, который я добавляю в редактор, чтобы не вводить его каждый раз.";

    return $content;
}
}
4
Комментарии

@Scott B: @Chris_O дал хороший ответ, но мне любопытно и хотелось бы разобраться: вы представляете это как salespage.html, потому что это то, что вам нужно, и это первое, что пришло в голову? Или было бы предпочтительнее иметь страницу в админке, где можно было бы редактировать и сохранять стандартную страницу продаж? Кроме того, вам нужна только одна страница или, возможно, множество? Кстати, эти вопросы дополняют ответ @Chris_O, а не являются альтернативой.

MikeSchinkel MikeSchinkel
7 сент. 2010 г. 04:13:40

@Mike, не совсем понял первую часть вашего вопроса, не могли бы вы взглянуть на нее? Я не вижу необходимости в слишком большом количестве, у каждого человека будет свой уникальный контент, поэтому я просто пытаюсь дать им основы (заголовки, вступление, пункты списка, заключение, гарантию, кнопку корзины, отказ от ответственности и т. д.)

Scott B Scott B
7 сент. 2010 г. 14:52:23

@Scott B Я имею в виду, почему вы выбрали файл на диске, а не раздел в админке? Если их несколько, не рассматривали ли вы создание пользовательского типа записи "Продающее письмо"?

MikeSchinkel MikeSchinkel
8 сент. 2010 г. 02:53:04

Я не подумал об этом, но считаю, что это отличное предложение, поэтому я создал еще один вопрос с учетом этого.

Scott B Scott B
8 сент. 2010 г. 22:51:52
Все ответы на вопрос 1
1

@Scott B, Я только что прочитал пост на блоге Джастина Тадлока по этой же проблеме.

Решение

Используйте хук фильтра default_content и добавьте его в файл function.php вашей темы.

Пример:

<?php

add_filter( 'default_content', 'my_editor_content' );

function my_editor_content( $content ) {

    $content = "Это пользовательский контент, который я добавляю в редактор записей, потому что не хочу печатать его снова.";

    return $content;
}

?>

Вы можете добавить XHTML или что угодно в строку $content

Когда вы нажмете "Добавить новую запись", вы увидите: Результат добавления пользовательского контента в редактор WordPress

7 сент. 2010 г. 01:53:48
Комментарии

Спасибо, это отлично сработает. Я оберну код в functions.php, чтобы контент добавлялся только при активном шаблоне salespage (в моей теме несколько шаблонов, и только один подходит для контента по умолчанию).

Scott B Scott B
7 сент. 2010 г. 14:54:12