1

我有一个正在处理的存档模板,在我正在使用的页面底部

<?php next_posts_link("&laquo; Older Posts", $wp_query->max_num_pages); ?>
<?php previous_posts_link("Newer Posts &raquo;", $wp_query->max_num_pages); ?>

显示分页。

这些功能似乎检查是否有新/旧帖子要显示,并有条件地确定是否显示上一个/下一个链接。

我试图实现的行为是,如果给定页面上没有显示较旧/较新的帖子,则仍然会创建一个锚标记,但没有给出 href 属性并给出单独的类。

即 - 在包含最新帖子的页面上,我想显示

<a class="previous-posts" href="THE_PREVIOUS_POSTS_PAGE">&laquo; Older Posts</a>
<a class="next-posts disabled">Newer Posts &raquo;</a>

而不仅仅是一个“旧帖子”链接,旁边没有任何内容(出于布局原因)。

关于我可以在哪里编辑默认函数的行为或如何制作自己的任何想法?

更新:

Mike Lewis 的回答非常适合 Next_posts,但我似乎仍然搞砸了 previous_posts。

<?php if ($prev_url = previous_posts($wp_query->max_num_pages, false)){
    // next_posts url was found, create link with this url:
    ?><a href="<?= $prev_url ?>">&laquo; Newer Posts</a><?php
} else {
    // url was not found, do your alternative link here
    ?><a class="disabled">&laquo; Newer Posts</a><?php
} ?>

<?php if ($next_url = next_posts($wp_query->max_num_pages, false)){
    // next_posts url was found, create link with this url:
    ?><a href="<?= $next_url ?>">Older Posts &raquo; </a><?php
} else {
    // url was not found, do your alternative link here
    ?><a class="disabled">Older Posts &raquo; </a><?php
} ?>

第一个函数始终显示禁用的链接,而第二个函数的行为完全符合预期。知道这里有什么吗?

4

1 回答 1

3

这很棘手。如果您查看previous and next_posts_link()函数的核心代码,您会发现next_posts()previous_posts(). 这些在/wp-includes/link-template.php1552 行附近。

如果使用next_posts($wp_query->max_num_pages, false),则第二个参数是$echo,我们不需要,因此我们可以检查该值:

if ($next_url = next_posts($wp_query->max_num_pages, false)){
    // next_posts url was found, create link with this url:
    ?><a href="<?= $next_url ?>">Next Posts</a><?php
} else {
    // url was not found, do your alternative link here
    ?><a href="#" class="disabled">Next Posts</a><?php
}

编辑:previous_posts($echo = true)采用一个参数,所以在这种情况下:

previous_posts(false).

于 2013-07-12T14:30:57.683 回答