WordPress как на ладони
rgbcode is looking for WordPress developers.

Создание страницек через functions.php

Как можно настроить в файле functions.php создание страничек чтобы не создавать их вручную через админпанель. Нужно учесть еще то, что сайт буде мыльтиязичным

Заметки к вопросу:
Dan Zakirov 1.5 года назад

А почему бы CLI не юзать?

Dan Zakirov 1.5 года назад

А так, через wp_insert_post(), если надо могу пример накатать

batman_vert 1.5 года назад

Если не сильно затруднить, буду очень благодарен тебе добрый человек!

Dan Zakirov 1.5 года назад

Примерно вот основная конструкция добавления страницы

// Параметры страницы
$page = array(
	'post_title'    => 'Название страницы',
	'post_content'  => 'Текст страницы',
	'post_status'   => 'publish',
	'post_author'   => 1,
	'post_type'     => 'page',
);

// Добавляем страницу на английском языке допустим, это язык главный
$page_id_en = wp_insert_post($page);

// Перевод страницы на французский язык
$page_id_fr = wp_insert_post(array_merge($page, array(
	'post_title'    => 'Загаловок на французком',
	'post_content'  => 'Текст страницы на французском языке',
	'icl_translations' => array($page_id_en => array(
		'element_type' => 'post_page',
		'language_code' => 'fr',
		'source_language_code' => 'en',
		'trid' => wpml_get_content_trid('post_page', $page_id_en),
	)),
)));

// Перевод страницы на немецкий язык
$page_id_de = wp_insert_post(array_merge($page, array(
	'post_title'    => 'Заголовок на немецком',
	'post_content'  => 'Контент на немецком',
	'icl_translations' => array($page_id_en => array(
		'element_type' => 'post_page',
		'language_code' => 'de',
		'source_language_code' => 'en',
		'trid' => wpml_get_content_trid('post_page', $page_id_en),
	)),
)));

Вопрос как применять это... каким образом вы ходите запускать создание страницы? Можно например обернуть в функцию и через нее запускать. Только зачем вам это, есть WP CLI, там просто по команде запускаем

wp post create --post_type=page --post_title='Заголовок страницы основного языка' --post_content='Контент страницы основного языка' --post_status=publish

Ну и перевод к ней на франц например

wp post create --post_type=page --post_title='Заголовок на французком например' --post_content='Контент страницы на французком языке' --post_status=publish --post_parent=ТУТ_ИД_СТРАНИЦЫ --meta_input='_wpml_lang_code=fr'

Или я задачу не понял? Тогда поясните более подробно

batman_vert 1.5 года назад

Спасибо большое, пока думаю так буду справляться. Но спасибо за совет, буду разбираться с CLI

0
batman_vert
1.5 года назад
  • 3
    Dan Zakirov706 air-wp.com

    Тогда решение найдено. Через WP CLI

    Создаем страницу:

    wp post create --post_type=page --post_title='Заголовок страницы основного языка' --post_content='Контент страницы основного языка' --post_status=publish

    Создаем перевод:

    wp post create --post_type=page --post_title='Заголовок на французком например' --post_content='Контент страницы на французком языке' --post_status=publish --post_parent=ТУТ_ИД_СТРАНИЦЫ --meta_input='_wpml_lang_code=fr'
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация