Intereting Posts
Я не могу получить tax_query в get_posts () для работы с пользовательской таксономией Использование условий OR в meta_query для аргумента query_posts Где мои ссылки js и css в заголовке? Как добавить плагин css и js в iframe Php-файл, который не распознает функции wordpress письмо с подтверждением отправляется с моей локальной регистрации пользователя, но почта не будет отображаться на электронной почте? Исключенный идентификатор изображения Миграция базы данных wordpress от mariadb 10.0.20 до 5.5.50 Используйте одну и ту же структуру константной ссылки на основе даты для всех типов сообщений Проблема с тегом <code> Индивидуальная почта. Meta_key, таксономия или статус сообщения для разделения? Дополнительная ссылка на внешнюю веб-страницу Интеграция интерактивной карты в пользовательский тип сообщения WordPress Заказ списка пользователей пользователем meta Перенаправление всех сообщений после изменения структуры URL с помощью htaccess

Пользовательская страница блога

Я нашел здесь пример создания пользовательской страницы блога:

http://www.wpbeginner.com/wp-themes/how-to-create-a-custom-homepage-in-wordpress/

1) Я создал страницу блога в разделе «Страницы»> «Добавить новый»). В разделе «Шаблон» я выбираю «Блог». 3) Обратите внимание, что я создал файл blog.php в моей настраиваемой теме, имеющей этот контент:

<?php /* Template Name: Blog */ ?> <?php echo "Hello World"; $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(); $wp_query->query('posts_per_page=5'.'&paged='.$paged); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 

4) В настройках> чтение в разделе «Отображение главной страницы» я установил «Сообщения страницы:» в «Блог»,

Теперь я просматриваю страницу своего блога в браузере, он просто отображает все мои сообщения. Но он не повторяет «Hello World», и если я удалю код из blog.php, он не будет иметь никакого эффекта! Он все еще просто отображает все сообщения. И затем я пытаюсь добавить пользовательский запрос:

 <?php /* Template Name: Blog */ ?> <?php global $wpdb; $content = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_type = %s LIMIT 1 ", 'header_post' ) ); echo $content->post_content; ?> 

И снова он игнорирует это и просто отображает все сообщения с post_type сообщения и post_status из публикации.

Очевидно, что код в моем blog.php игнорируется. Зачем?

Это то, что в настоящее время выглядит тоже (дата публикации отсутствует, комментарий отсутствует):

http://img.wordpressask.com/pages/2caq0g.jpg

Я внес изменения в index.php в моей теме:

 <?php $temp = $wp_query; $wp_query= null; $wp_query = new WP_Query(); $wp_query->query('posts_per_page=1'.'&paged='.$paged); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 

и все еще никакого эффекта

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

Подробнее см. В иерархии шаблонов . Вы должны home.php свой шаблон home.php если хотите, чтобы его использовали на странице для сообщений.

Как утверждает Мило, иерархия шаблонов определяет, какой шаблон используется. Если вы хотите, чтобы ваши сообщения в блогах размещались на странице блога, у вас есть 2 варианта.

  1. Установите домашнюю страницу на статическую страницу и выберите блог для своей страницы сообщений при чтении настроек. Затем вам нужно внести изменения в index.php. Вы получите последние сообщения, и страница будет называться блогами.

    • Если вы сделаете это, не будет смысла добавлять пользовательский запрос, потому что WordPress уже будет запрашивать сообщения. Вы можете добавить фильтр в pre_get_posts, если вам нужно изменить этот запрос.
  2. Задайте домашнюю страницу статичной и не выбирайте страницу с сообщениями в блоге, а затем создайте собственный шаблон, как в вашем примере кода. Однако в вашем примере кода действительно нет необходимости устанавливать $ wp_query в $ temp. Просто переименуйте новый WP_Query $ my_query или что-то в этом роде.

    • Для разбивки на страницы вам нужно установить переменную $ paged. См. Параметры разбиения на страницы WP_Query .