Я пытаюсь создать тему, которая потребует включения определенных страниц. Есть ли способ автоматически создавать страницы и назначать их шаблонам страниц при установке темы?
theme-development
pages
installation
JonnyPlow
источник
источник
Ответы:
Предыдущая ссылка не работает. :(
Стандартный способ через
wp_insert_post
. Вы получаете кучу информации о WP Codex: http://codex.wordpress.org/Function_Reference/wp_insert_postисточник
У меня возникла похожая ситуация, когда мне нужно было добавить страницу активации темы и автоматически установить ее в качестве домашней страницы.
Вот как я это сделал:
Надеюсь, это кому-нибудь поможет.
Обновить:
Спасибо Марути Моханти .
источник
Это плохая практика. Темы для презентации, они визуальные, они не должны диктовать фактическое содержание. Если они это сделают, то вы делаете это неправильно, и ваш код будет лучше в качестве плагина.
Однако, если ваша тема имеет «предназначенное» расположение контента, вы не должны автоматически создавать страницы / контент, вы вообще не должны вмешиваться в контент пользователей, вы можете нарушать другие функции.
Вместо этого позвольте пользователю выбирать, какие страницы следует использовать, точно так же, как настройки позволяют вам выбирать статическую страницу вместо последних сообщений, и как плагины, такие как Woocommerce или Jigoshop, позволяют вам выбрать, какая страница является страницей оформления заказа и т. Д. плагины, это нормально для них, чтобы создавать страницы таким образом).
В любом случае это указывает на фундаментальный недостаток в вашем подходе к созданию вашей темы (или вы создаете что-то для клиента, и вы решили упростить его установку, создавая больше работы для вас, тогда как вам лучше предлагать установить его за отдельную плату, что было бы выгоднее).
Если вы достаточно глупы, чтобы попытаться это сделать?
См. Http://codex.wordpress.org/Function_Reference/wp_insert_post
Но вам нужно будет проверить каждый init, чтобы увидеть, существуют ли страницы. Если они не создадут их и обновят параметр где-нибудь, чтобы вы помнили, что они были созданы, и не проверять в следующий раз, иначе у вас будет больше страниц, созданных при каждой загрузке страницы.
источник
Используя код в этом ответе и
wp_insert_post
я нашел в этой теме .источник