WP_LINK_PAGES:是否仅在有多个分页符时才显示当前页码?

时间:2015-04-30 作者:Simon Bouchard

我正在尝试构建一个函数来显示当前章节(页面)。仅当有多个章节(分页符)时才使用php文件。

此函数将在标题下的页眉中输出章节#。然后,我将自定义并使用底部的wp\\u link\\u页面进行章节分页。

目前,我的函数不工作,它不返回任何内容,如果我删除if语句if($multipage){},它将返回“Chapter 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 个回复
最合适的回答,由SO网友:birgire 整理而成

这个$multipage 是在setup_postdata() 方法WP_Query.当你跑的时候就会叫它the_post(). 正如@s\\u ha\\u 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.
}
在主循环之前,您必须记住回放。

SO网友:s_ha_dum

$multipage 是一个"inside the Loop" variable. 我没有确切地追踪到它是在哪里以及如何设置的,但考虑到这些信息,显而易见的解决方案是put your code inside a Loop, 这是一个很好的实践,因为很多事情都依赖于这个循环。类似于:

if (have_posts()) {
    while (have_posts() {
      the_post();
      $sbwp_story_thumbnail = "";
      // ....
    }
}

结束

相关推荐

需要通过Functions.Php注销脚本

嗯,我有点失望Wordpress注销脚本有多么困难。首先,我得到了所有句柄的列表,所以我查找了它,句柄是jquery migrate然后我将其添加到我的函数中。phpwp_dequeue_script(\'jquery-migrate\'); 还有这个wp_dequeue_script(\'jquery\'); 尽管脚本已正确注册,但它什么也不做。版本字符串出了什么问题,我想不出为什么它们仍然包含这些字符串,应该尽快在下一个WP版本中删除,它们只会在某些情况下阻止缓存正确缓存,这很烦人