0

Web サイトに Cycle jquery を使用しています。次のページに移動するためのリンクをスライドショーの最後に取得する PHP コードを追加しました。ページをアルファベット順に並べ替えたいのですが、うまくいきません...「orderby=post_title」を追加しましたが、まだうまくいきません...誰か助けてくれませんか? ここに私のPHPコードがあります:

function dbdb_next_page_link() {
        global $post;
        if ( isset($post->post_parent) && $post->post_parent > 0 ) {
            $children = get_pages('&orderby=menu_order&order=ASC&child_of='.$post->post_parent.'&parent='.$post->post_parent);
        }
//print_r($children);
        // throw the children ids into an array
        foreach( $children as $child ) { $child_id_array[] = $child->ID; }
        $next_page_id = relative_value_array($child_id_array, $post->ID, 1);
        $output = '';

        if( '' != $next_page_id ) {

            $output .= '<a href="' . get_page_link($next_page_id) . '">'. get_the_title($next_page_id) . ' &raquo;</a>';

        }

        return get_page_link($next_page_id);

    }

および jsfiddle リンク: http://jsfiddle.net/KvBRV/

....

「選択タイプ」メニューで同じ問題が発生しました。ページがアルファベット順にソートされていません。理由はわかりません。ここに私のphpコードがあります:

<div class="styled-select">
<?php

if(!$post->post_parent){

    $children = get_pages(array(
        'child_of' => $post->ID,
        'post_type' => 'page',
        'post_status' => 'publish',
        'sort_order' => 'ASC',
        'sort_column' => 'post_title',
    ));

}else{

    $children = get_pages(array(
        'child_of' => $post->post_parent,
        'post_type' => 'page',
        'post_status' => 'publish',
        'sort_order' => 'ASC',
        'sort_column' => 'post_title',
    ));
}

if ($children) {
    echo '<select name="" onchange="location = this.options[this.selectedIndex].value;">';
    echo '<option>'. 'A - Z' .'</option>';

    function getInitials($name){
    //split name using spaces
    $words=explode(" ",$name);
    $inits='';
    //loop through array extracting initial letters
    foreach($words as $word){
        $inits = strtoupper(substr($word,0,1));
        break;
    }
    return $inits; 
}
$currval = "";

    foreach($children as $child){
    //print_r($child);
    $permalink = get_permalink($child->ID);
    $post_title = strtoupper($child->post_title);
    $initial = getInitials($child->post_title);
    if($initial!='' && $currval != $initial ) {
        $currval = $initial;
        echo '<optgroup label="'.$initial.'""></optgroup>';
    }
    echo '<option value="'.$permalink.'">'.$post_title.'</option>';
    }
    echo '</select>';


} ?>


<!-- FIN MENU DEROULANT A-Z -->


</div>

および jsfiddle リンク: http://jsfiddle.net/Zp3Lt/

助けてくれてありがとう!

マチュー

4

1 に答える 1

0

get_pagesorderbyまたはorder代わりにsort_column呼び出された引数を受け入れず、sort_order使用されます..

あなたのコードは

if ( isset($post->post_parent) && $post->post_parent > 0 ) {
            $children = get_pages('sort_column=post_title&sort_order=ASC&child_of='.$post->post_parent.'&parent='.$post->post_parent);
        }

ここを参照

ページを取得

于 2013-10-12T15:11:03.233 に答える