2

我们似乎根本无法让 template-tags.php the_posts_navigation 函数来关心基本编辑:

if ( ! function_exists( 'the_posts_navigation' ) ) :
/**
 * Display navigation to next/previous set of posts when applicable.
 *
 * @todo Remove this function when WordPress 4.3 is released.
 */
function the_posts_navigation() {
    // Don't print empty markup if there's only one page.
    if ( $GLOBALS['wp_query']->max_num_pages < 2 ) {
        return;
    }
    ?>
    <nav class="navigation posts-navigation" role="navigation">
        <h2 class="screen-reader-text"><?php _e( 'Posts navigation', 'mytheme' ); ?></h2>
        <div class="nav-links">

            <?php if ( get_next_posts_link() ) : ?>
            <div class="nav-previous"><?php next_posts_link( __( 'Older posts!!', 'mytheme' ) ); ?></div>
            <?php endif; ?>

            <?php if ( get_previous_posts_link() ) : ?>
            <div class="nav-next"><?php previous_posts_link( __( 'Newer posts!!', 'mytheme' ) ); ?></div>
            <?php endif; ?>

        </div><!-- .nav-links -->
    </nav><!-- .navigation -->
    <?php
}
endif;

如您所见,我们在帖子链接中添加了一些感叹号,但 WordPress 在前端可能不太关心。它应该显示在 index.php 上,那里有很多帖子可以看到,并且它固执地只显示“帖子导航”作为主标题和“旧帖子”。

请帮忙!谢谢!

4

2 回答 2

6

似乎在 4.1 Wordpress 中将 the_posts_navigation 添加到其核心功能中。在此之前它并不存在,_s 实际上在 template-tags.php 中使用了同名的函数。所以现在,它不再调用以前的自定义 _s 函数,而是默认为 Wordpress 版本,基本上忽略了 template-tags.php 中的那个。

为了解决这个问题,我只是更改了 _s 函数的名称。就个人而言,我砍掉了“the”,使其成为 template-tags.php 中的 posts_navigation ,然后在主题中引用它的任何地方(index.php、single.php 等)。像魅力一样工作,我对 template-tags.php 中的函数所做的任何更改(添加我自己的箭头图标)都显示出来了。

于 2015-04-09T19:56:44.950 回答
0

看来 template-tags.php 文件中的函数仅与 4.1 之前的 WordPress 版本兼容,它们是 WordPress 核心的一部分。

使用 the_posts_pagination() 和/或 next_posts_link() / previous_posts_link() 足够有效。

于 2015-02-09T20:38:01.367 回答