@KindOfHeaven

Как сделать мультистраничный сайт на WordPress?

Есть задача, под 1 страницу на WordPress сделать множество фактических страниц с разным заголовком (1 строка) и разным url
То есть должна быть 1 страница на WordPress, но при этом штук 200 урлов с этой страницей, но разным заголовком
Как это можно реализовать?
  • Вопрос задан
  • 171 просмотр
Пригласить эксперта
Ответы на вопрос 2
kumaxim
@kumaxim
Web-программист
Одна страница на сайте = один пост в админке
На странице редактирования поста добавь пару доп.полей с требуемой информацией

Собственно каждый новый пост - это новый УРЛ на твоем сайте.
Теперь весь вопрос сводится к тому, как автоматически создать 200-500 новых постов с требуемыми параметрами.

В зависимости от входных данных можно обойтись либо просто консолью SQL-сервера либо писать какой-то скрипт/плагин для их генерации.
Ответ написан
Комментировать
trampick
@trampick
Веб-разработчик
Во- первых вам нужна функция add_rewrite_rule(). Вам нужно по определенной маске url выдавать определенный пост, указывая доп. параметр части url по которой индефиц. заголовки.
add_action('init', 'addMyRewrite');
function addMyRewrite() {
    add_rewrite_rule('^leaf/([0-9]+)/?', 'index.php?page_id=$matches[1]', 'top');//тут надо вставить свои данные
    /* Для того что бы обновить кэш используйте такую конструкцию. После того как правильно настроите   add_rewrite_rule нужно отключить 2 нижние строки.*/
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

Это поможет Вам выдавать по разным урлам один и тот же пост с одинаковым шаблоном.

Во-вторых для вывода разных заголовков можно использовать custom fields, но я бы советовал просто в шаблоне создать массив, где ключом является доп. параметр, а значением заголовок. Ну и выводить заголовок.

Так же что бы добавить доп. параметр в get_query_var Вам нужно использовать конструкцию
add_filter( 'query_vars', function( $vars ){
	$vars[] = 'доп. параметр';
	return $vars;
  } );
//этот фильтр нужно добавить в функцию addMyRewrite()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы