#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 -->