【问题标题】:Navigating through Wordpress sibling pages using functions.php使用 functions.php 浏览 Wordpress 同级页面
【发布时间】:2013-01-27 17:27:32
【问题描述】:

我正在尝试找到一种方法来浏览我的 wordpress 托管网站上的兄弟页面。经过一番搜索,我找到了this 放入我的functions.php:

function siblings($link) {
global $post;
$siblings = get_pages('child_of='.$post->post_parent.'&parent='.$post->post_parent);
foreach ($siblings as $key=>$sibling){
    if ($post->ID == $sibling->ID){
        $ID = $key;
    }
}
$closest = array('before'=>get_permalink($siblings[$ID-1]->ID),'after'=>get_permalink($siblings[$ID+1]->ID));

if ($link == 'before' || $link == 'after') { echo $closest[$link]; } else { return $closest; } }

它几乎可以满足我的需要。唯一的问题是:

  1. 它按字母顺序排序,我需要它们按订单号排序
  2. 我需要它循环播放(所以最后一页链接到第一页),而不仅仅是结束
  3. 它会自动显示“Previous of Next”,我想去掉那个“of”

如果有人对这三个问题中的任何一个提出意见,我将不胜感激。我自己正在做一些修补,但我认为你们中的大多数人可能在这方面比我好很多。那,我已经收到“500个服务器错误”的次数太多了。

谢谢

【问题讨论】:

    标签: wordpress navigation siblings


    【解决方案1】:

    这是您修改后的代码。它解决了您的前两个请求。最后一个不是提供的代码的一部分。此代码不会生成任何一个提及的单词。它只会回显或返回永久链接。

    function siblings($link) {
    global $post;
    $siblings = get_pages('child_of='.$post->post_parent.'&parent='.$post->post_parent.'&sort_column=menu_order');
    foreach ($siblings as $key=>$sibling){
        if ($post->ID == $sibling->ID){
            $ID = $key;
        }    
    }
    
    if( $ID == 0 ){
        $closest = array('before'=>get_permalink($siblings[count($siblings)-1]->ID),'after'=>get_permalink($siblings[$ID+1]->ID));  
    }elseif( $ID == count($siblings)-1 ){
        $closest = array('before'=>get_permalink($siblings[$ID-1]->ID),'after'=>get_permalink($siblings[0]->ID));
    }else{
        $closest = array('before'=>get_permalink($siblings[$ID-1]->ID),'after'=>get_permalink($siblings[$ID+1]->ID));   
    }
    
    if ($link == 'before' || $link == 'after') { echo $closest[$link]; } else { return $closest; } }
    

    编辑:&sort_column=menu_order 添加到 get_pages 参数以解决第一个请求

    【讨论】:

    • 非常感谢。不过,这只解决了第二个问题,而不是第一个问题。它仍然按字母顺序排列它们。不管怎样,谢谢。
    • 太棒了!太感谢了。知道我可能需要在哪里改变我正在谈论的“of”位吗?如果没有,那很好,你已经是一个很好的帮助了。
    • 应该在你的模板文件的一部分,在那里你调用了siblings() 函数...
    • 将我的答案标记为正确答案会很好,在此先感谢。
    猜你喜欢
    • 1970-01-01
    • 2016-12-01
    • 2017-04-26
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    相关资源
    最近更新 更多