使用<prev and Next>链接时是否可以跳过某些指定的页面?

时间:2012-04-10 作者:timshutes

感谢您抽出一分钟阅读我的问题。我在谷歌上搜索了一下,似乎在任何地方都找不到这个问题的答案。如果它已经在stack exchange的某个地方了,请原谅我。

我正在使用this plugin 在我的页面集中允许“上一页”和“下一页>”链接。我可以使用wordpress管理菜单更改页面顺序,所以这几乎是完美的。然而,在“上一页”和“下一页”循环中,我有几页想跳过。

例如,我使用的是静态主页。“下一个”链接一度链接到主页。我想从这个循环中排除主页和其他几个页面。这可能吗?最好的方法是什么?

谢谢

提姆

P、 该插件的工作方式与Next/Prev post内置功能的工作方式几乎相同。我假设,如果有一种方法可以将帖子从这个循环中排除,那么对于带有插件的页面,它将以同样的方式工作。谢谢

1 个回复
最合适的回答,由SO网友:brasofilo 整理而成

还没有检查你提到的插件。。。但我使用this solution 用于进行“作者”导航。

我调整了函数,如果没有插件(未测试),这可能会正常工作。如果需要更多的排除,则需要调整ID和条件本身。

[edit: corrected functions, the queries were missing the menu_order condition]

备注:

1) ID 99999对应于定义为首页的静态页面

2) 所有页面必须有一个定义的菜单顺序,我相信如果有0(零)作为菜单顺序的页面,这将不起作用

//PAGE.PHP
get_next_page_nav();
get_prev_page_nav();

//FUNCTIONS.PHP
function get_next_page_nav($link="%link", $title="%title") {
    global $wpdb, $post;
    $prev = $wpdb->get_row($wpdb->prepare("SELECT ID, post_title FROM $wpdb->posts WHERE post_type=\'page\' AND post_status=\'publish\' AND ID!=\'99999\' AND menu_order < \'".$post->menu_order."\' ORDER BY menu_order DESC LIMIT 1;"));
    if($prev) {
        $title = preg_replace(\'/%title/\',$prev->post_title, $title);
        echo preg_replace(\'/%link/\', \'<a href="\'.get_permalink($prev->ID).\'" rel="prev" class="next-page">\'.$title.\'</a> \', $link);
    }
}  

function get_prev_page_nav($link="%link", $title="%title") {
    global $wpdb, $post;
    $next = $wpdb->get_row($wpdb->prepare("SELECT ID, post_title FROM $wpdb->posts WHERE post_type=\'page\' AND post_status=\'publish\' AND ID!=\'99999\'  AND menu_order > \'".$post->menu_order."\' ORDER BY menu_order ASC LIMIT 1;"));
    if($next) {
        $title = preg_replace(\'/%title/\',$next->post_title, $title);
        echo preg_replace(\'/%link/\', \' <a href="\'.get_permalink($next->ID).\'" rel="next" class="previous-page">\'.$title.\'</a>\', $link);
    } 
}

结束

相关推荐

How do you categorize pages?

我是一名经验丰富的Drupal开发人员,刚刚被Wordpress困住。对于新wordpress构建中选定数量的页面,我需要将它们添加到一个类别中,然后将此类别块添加到显示不同类别的页面中(选择它们将充当过滤器)。在drupal中,这将涉及创建自定义内容类型、分类法和视图块等。如何在wordpress中实现同样的效果?我知道我可以创建一个侧栏并将一个小部件放入其中。但我正在努力学习如何创建块,以便将这些页面放入其中并进行分类。