WordPress: отображение содержимого на другой странице разбивки на страницы

#php #wordpress #pagination

#php #wordpress #разбивка на страницы

Вопрос:

мне нужно отобразить the_content() на другой странице нумерации страниц сообщения. Например. первая страница — это дополнительное поле, называемое «индекс». Страница 2 является «абстрактной», а на странице 3 приведена информация об авторе. На странице 4 должен начинаться the_content .

Проблема в том, что wordpress начинает подсчет страниц, и на странице 4_контент отображается так, как если бы он был на странице 4 (поэтому после 4 раз < ! — next page —> ).

Я сделал это:

 $url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (!preg_match('#/d /?#', $url)) {
    the_field("index");
} elseif(false !== strpos($url,'/2/')) {
    get_the_author_meta('first_name').' '.get_the_author_meta('last_name');
} elseif(false !== strpos($url,'/3/')) { 
    the_field("abstract");
} else {
    the_content();
}
  

Но, как я уже сказал, the_content() запускается так, как если бы это была страница 4. Я знаю, что это должно действовать таким образом.
Как я могу сделать, чтобы страница 4 была похожа на страницу 1 для the_content().

ОБНОВЛЕНИЕ ДЛЯ УТОЧНЕНИЯ:

Я хочу разместить the_content() в моем файле темы content-single.php чтобы отобразить мою статью во внешнем интерфейсе. У меня активна разбивка на страницы, поэтому WordPress разбивает мою статью на страницы всякий раз, когда находит < !— следующая страница —>. Это собственное поведение WordPress.

Но я хочу поместить дополнительный контент ПЕРЕД the_content() .

 Page 1: Index
Page 2: Abstract
Page 3: Author
Page 4: START the_content() page 1
Page 5: the_content() page 2
Page 6: the_content() page 3
  

и так далее…

Я делаю это с помощью кода, который я написал выше. Я проверяю, на какой странице мы находимся. ($url,’/3/’) — страница 3.

Даже если я проверю страницу 4 (в части else) и выведу the_content() здесь, wordpress выводит страницу 4 the_content(), поэтому часть после 4 раз < !—следующая страница—> . Я не НАЧИНАЮ с the_content() на странице 4, но он начинается на странице 1, но не отображает его. Внутренний счетчик страниц работает каким-то образом.

Как я могу запустить the_content() на странице 4? Или как я могу запретить WordPress подсчитывать страницы?

Ответ №1:

Первое, что я заметил, это то, что вы используете регулярное выражение для сопоставления номера страницы! вы должны использовать только $page (специфичную для WordPress глобальную переменную).

$page (int) Страница сообщения, как указано в запросе var page. http://codex.wordpress.org/Global_Variables

Однако я предлагаю использовать короткий код, который намного проще, чем редактирование single.php , и дает больше гибкости.

 [section page='index'] // obviously you need to build a custom shortcode

<!--nextpage-->

[section page='abstract']

<!--nextpage-->

[section page='author']

<!--nextpage-->

<!-- page's 1 content -->

<!--nextpage-->

<!-- page's 2 content -->

<!--nextpage-->

<!-- page's 3 content -->