1

現在、コメントのページネーションにプラグイン WP-CommentNavi を使用していますが、ページがクリックされるたびに、最上位のコメント ページ (最も古いコメント) に移動します。私のコメントは意図的に最新のものから最初に表示されるため、リンクがクリックされるたびにデフォルトのページネーション ページを 1 にする必要があります。

他のページネーション プラグインにも同じデフォルトがあることに気付きました。これにより、最も高いページネーション ページ (つまり、5 ページがある場合) の 5 ページが表示されます。

ページtellhi####.com/newcastleをロードした瞬間、ロードされるページはtellhi####.com/newcastle/comment-page-2/ですが、tellhi####.com/が必要ですnewcastle/comment-page-1/ ロードする

これが私が達成しようとしていることに関連するコードであるかどうかはわかりませんが、答えはここにあると思います(以下)。そうでない場合は、このコードを無視して教えてください。

### Function: Comment Navigation: Boxed Style Paging
function wp_commentnavi($before = '', $after = '') {
    global $wp_query;
    $comments_per_page = intval(get_query_var('comments_per_page'));
    $paged = intval(get_query_var('cpage'));
    $commentnavi_options = get_option('commentnavi_options');
    $numcomments = intval($wp_query->comment_count);
    $max_page = intval($wp_query->max_num_comment_pages);
    if(empty($paged) || $paged == 0) {
        $paged = 1;
    }
    $pages_to_show = intval($commentnavi_options['num_pages']);
    $pages_to_show_minus_1 = $pages_to_show-1;
    $half_page_start = floor($pages_to_show_minus_1/2);
    $half_page_end = ceil($pages_to_show_minus_1/2);
    $start_page = $paged - $half_page_start;
    if($start_page <= 0) {
        $start_page = 1;
    }
    $end_page = $paged + $half_page_end;
    if(($end_page - $start_page) != $pages_to_show_minus_1) {
        $end_page = $start_page + $pages_to_show_minus_1;
    }
    if($end_page > $max_page) {
        $start_page = $max_page - $pages_to_show_minus_1;
        $end_page = $max_page;
    }
    if($start_page <= 0) {
        $start_page = 1;
    }
    if($max_page > 1 || intval($commentnavi_options['always_show']) == 1) {
        $pages_text = str_replace("%CURRENT_PAGE%", number_format_i18n($paged), $commentnavi_options['pages_text']);
        $pages_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pages_text);
        echo $before.'<div class="wp-commentnavi">'."\n";
        switch(intval($commentnavi_options['style'])) {
            case 1:
                if(!empty($pages_text)) {
                    echo '<span class="pages">'.$pages_text.'</span>';
                }
                if ($start_page >= 2 && $pages_to_show < $max_page) {
                    $first_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $commentnavi_options['first_text']);
                    echo '<a href="'.clean_url(get_comments_pagenum_link()).'" class="first" title="'.$first_page_text.'">'.$first_page_text.'</a>';
                    if(!empty($commentnavi_options['dotleft_text'])) {
                        echo '<span class="extend">'.$commentnavi_options['dotleft_text'].'</span>';
                    }
                }
                previous_comments_link($commentnavi_options['prev_text']);
                for($i = $start_page; $i  <= $end_page; $i++) {
                    if($i == $paged) {
                        $current_page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['current_text']);
                        echo '<span class="current">'.$current_page_text.'</span>';
                    } else {
                        $page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['page_text']);
                        echo '<a href="'.clean_url(get_comments_pagenum_link($i)).'" class="page" title="'.$page_text.'">'.$page_text.'</a>';
                    }
                }
                next_comments_link($commentnavi_options['next_text'], $max_page);
                if ($end_page < $max_page) {
                    if(!empty($commentnavi_options['dotright_text'])) {
                        echo '<span class="extend">'.$commentnavi_options['dotright_text'].'</span>';
                    }
                    $last_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $commentnavi_options['last_text']);
                    echo '<a href="'.clean_url(get_comments_pagenum_link($max_page)).'" class="last" title="'.$last_page_text.'">'.$last_page_text.'</a>';
                }
                break;
            case 2;
                echo '<form action="'.admin_url('admin.php?page='.plugin_basename(__FILE__)).'" method="get">'."\n";
                echo '<select size="1" onchange="document.location.href = this.options[this.selectedIndex].value;">'."\n";
                for($i = 1; $i  <= $max_page; $i++) {
                    $page_num = $i;
                    if($page_num == 1) {
                        $page_num = 0;
                    }
                    if($i == $paged) {
                        $current_page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['current_text']);
                        echo '<option value="'.clean_url(get_comments_pagenum_link($page_num)).'" selected="selected" class="current">'.$current_page_text."</option>\n";
                    } else {
                        $page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $commentnavi_options['page_text']);
                        echo '<option value="'.clean_url(get_comments_pagenum_link($page_num)).'">'.$page_text."</option>\n";
                    }
                }
                echo "</select>\n";
                echo "</form>\n";
                break;
        }
        echo '</div>'.$after."\n";
    }
}

要するに、ページがクリックされるたびに、コメントのページネーションが利用可能な最上位のページではなく、1 ページにある必要があります。wordpressダッシュボードでディスカッション設定を試してみました。グーグルにも何もありません!

完全な回答に失敗した場合、デフォルトでロードされるページネーションページを決定する実際のphpコードを知っている人はいますか?

この回答を電子メールで受け取りましたが、PHP の知識があるため実装できません。何かアイデアはありますか? ...

ループを逆にするだけです。それはそれを修正します。関連する部分は次のとおりです: http://pastie.org/8166399 $i-- を使用して戻る必要があります。

これにより、デフォルトのスタート ページが変更されるのでしょうか、それとも単にコメントが逆になるだけでしょうか? 私の質問が明確であることを願っています!どんな反応でも感謝します。

前もって感謝します、ポール

4

1 に答える 1

0

オプションはずっとWordpressにありました。写真参照: http://oi40.tinypic.com/35aj3pt.jpg

あなたが操作する特定のコードに対する答えを誰かが持っている場合でも、ここで質問に答えてください.

于 2013-07-28T21:57:53.413 に答える