страницы ссылок wp: отображать текущий номер страницы только при наличии нескольких разрывов страниц?
Я пытаюсь создать функцию для отображения текущей главы (страницы) в single.php файл ТОЛЬКО в том случае, если имеется более одной главы (разрыв страницы).
Эта функция выведет номер главы в заголовке страницы под заголовком. Затем я настрою и буду использовать страницы wp_link в нижней части для разбиения на страницы глав.
В настоящее время моя функция не работает, она ничего не возвращает, и если я удалю оператор IF if ($многостраничный) {}, он вернет "Глава 0".
Мне нужен совет по этому поводу.
/**
* Get current chapter number
*/
if ( ! function_exists( 'sbwp_get_current_chapter' ) ) {
function sbwp_get_current_chapter() {
global $page, $numpages, $multipage, $more;
if ( $multipage ) {
echo '<p class="page-link accent">';
echo esc_html(( '' . __( "Chapter ", "sbwp" ) . '' . $page ));
echo '</p>';
}
}
}
2 answers
$multipage
построен внутри метода setup_postdata()
WP_Query
.
Он вызывается, когда вы запускаете the_post()
. Так что, как объяснил @s_ha_dum, вы должны сделать петлю вокруг этого:
Вы можете попробовать это:
if( have_posts() )
{
the_post(); // Make a call to setup_postdata().
echo sbwp_get_current_chapter(); // Display the current chapter.
rewind_posts(); // Rewind back.
}
Перед вашим основным циклом, где вы должны помнить о перемотке назад.
$multipage
является переменной "внутри цикла". Я не отследил точно, где и как он установлен, но, учитывая только эту информацию, очевидным решением является поместить ваш код в цикл, что в любом случае является хорошей практикой, поскольку от этого цикла зависит ряд вещей. Что-то вроде:
if (have_posts()) {
while (have_posts() {
the_post();
$sbwp_story_thumbnail = "";
// ....
}
}