質問編集履歴
12
追記6を追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -226,4 +226,20 @@ | |
| 226 226 | 
             
            追記 5
         | 
| 227 227 | 
             
            URLクエリが?order=diff_subsribersの場合に、ページネーションの次へを押すとURLクエリが?order=diff_subsribers?paged=2になっていました。
         | 
| 228 228 | 
             
            試しに手入力でURLクエリを?order=diff_subsribers&paged=2にしてみたら、意図通りに表示されました。
         | 
| 229 | 
            -
            ページネーションの次へを押したときにURLクエリが?order=diff_subsribers&paged=2になるにはどうすればいいですか?
         | 
| 229 | 
            +
            ページネーションの次へを押したときにURLクエリが?order=diff_subsribers&paged=2になるにはどうすればいいですか?
         | 
| 230 | 
            +
             | 
| 231 | 
            +
            追記 6
         | 
| 232 | 
            +
            if文の中で`$paged_query = '&paged=%#%'`を追加して、ページネーションの部分を以下のようにすれば意図通りに表示されした。
         | 
| 233 | 
            +
            ```php
         | 
| 234 | 
            +
            if ($query->max_num_pages > 1) {
         | 
| 235 | 
            +
                            $paginate_links = paginate_links(array(
         | 
| 236 | 
            +
                                'base' => get_pagenum_link(1).'%_%',
         | 
| 237 | 
            +
                                'format' => $paged_query,
         | 
| 238 | 
            +
                                'current' => max(1, $paged),
         | 
| 239 | 
            +
                                'total' => $query->max_num_pages,
         | 
| 240 | 
            +
                                'prev_next' => true,
         | 
| 241 | 
            +
                                'prev_text' => '前へ',
         | 
| 242 | 
            +
                                'next_text' => '次へ'
         | 
| 243 | 
            +
                            ));
         | 
| 244 | 
            +
                        } 
         | 
| 245 | 
            +
            ```
         | 
11
追記5を追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -221,4 +221,9 @@ | |
| 221 221 | 
             
            `var_dump($paged);`は常に`int(1)`でした。
         | 
| 222 222 |  | 
| 223 223 | 
             
            追記 4
         | 
| 224 | 
            -
            `paginate_links()`の引数の連想配列の'format'を'?paged=%#%'に変えたら、URLクエリをつけない場合は意図通りに表示されましたが、?order=diff_subscribersをつけた場合は変化なしでした。
         | 
| 224 | 
            +
            `paginate_links()`の引数の連想配列の'format'を'?paged=%#%'に変えたら、URLクエリをつけない場合は意図通りに表示されましたが、?order=diff_subscribersをつけた場合は変化なしでした。
         | 
| 225 | 
            +
             | 
| 226 | 
            +
            追記 5
         | 
| 227 | 
            +
            URLクエリが?order=diff_subsribersの場合に、ページネーションの次へを押すとURLクエリが?order=diff_subsribers?paged=2になっていました。
         | 
| 228 | 
            +
            試しに手入力でURLクエリを?order=diff_subsribers&paged=2にしてみたら、意図通りに表示されました。
         | 
| 229 | 
            +
            ページネーションの次へを押したときにURLクエリが?order=diff_subsribers&paged=2になるにはどうすればいいですか?
         | 
10
'format'を'?paged=%#%'に変えた場合の結果を追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -218,4 +218,7 @@ | |
| 218 218 | 
             
            ?order=diff_subsribers%3Fpage%3D2%3Fpage%3D2?page=2
         | 
| 219 219 | 
             
            という風にURLクエリが長くなっていきます。
         | 
| 220 220 |  | 
| 221 | 
            -
            `var_dump($paged);`は常に`int(1)`でした。
         | 
| 221 | 
            +
            `var_dump($paged);`は常に`int(1)`でした。
         | 
| 222 | 
            +
             | 
| 223 | 
            +
            追記 4
         | 
| 224 | 
            +
            `paginate_links()`の引数の連想配列の'format'を'?paged=%#%'に変えたら、URLクエリをつけない場合は意図通りに表示されましたが、?order=diff_subscribersをつけた場合は変化なしでした。
         | 
9
var_dump($paged)の結果を追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -216,4 +216,6 @@ | |
| 216 216 | 
             
            ?order=diff_subsribers?page=2
         | 
| 217 217 | 
             
            ?order=diff_subsribers%3Fpage%3D2?page=2
         | 
| 218 218 | 
             
            ?order=diff_subsribers%3Fpage%3D2%3Fpage%3D2?page=2
         | 
| 219 | 
            -
            という風にURLクエリが長くなっていきます。
         | 
| 219 | 
            +
            という風にURLクエリが長くなっていきます。
         | 
| 220 | 
            +
             | 
| 221 | 
            +
            `var_dump($paged);`は常に`int(1)`でした。
         | 
8
コードのファイル名を追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -98,7 +98,7 @@ | |
| 98 98 |  | 
| 99 99 | 
             
            試したこと 4
         | 
| 100 100 | 
             
            wordpressの1ページの表示を3で以下のコードで実行ました。
         | 
| 101 | 
            -
             | 
| 101 | 
            +
            テーマのindex.php
         | 
| 102 102 | 
             
            ```php
         | 
| 103 103 | 
             
            <?php get_header(); ?>
         | 
| 104 104 | 
             
            <div class="container">
         | 
7
試したこと4を追記、文字数制限のため試したこと2を削除
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -74,9 +74,32 @@ | |
| 74 74 | 
             
            コードのコメントアウトに書いてある通り、get_postsを使ったループも試してみましたが、こちらも二重ループになってしまいます。
         | 
| 75 75 | 
             
            `var_dump($query->post_count)`と`var_dump(count($posts))`は`int(6)`と表示されました。
         | 
| 76 76 |  | 
| 77 | 
            +
             | 
| 78 | 
            +
             | 
| 79 | 
            +
            追記
         | 
| 80 | 
            +
            `if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :`の中のコードが間違っていました。
         | 
| 81 | 
            +
            誤 `$query = new WP_QUERY('cat='.$cat_id);` 
         | 
| 82 | 
            +
            正 `$query = new WP_QUERY($args);`
         | 
| 83 | 
            +
            ただ、`$args`の`'posts_per_page'`を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
         | 
| 84 | 
            +
            追記2
         | 
| 85 | 
            +
            `$args`の`'posts_per_page'`を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
         | 
| 86 | 
            +
             | 
| 77 | 
            -
            試したこと  | 
| 87 | 
            +
            試したこと 3
         | 
| 78 | 
            -
             | 
| 88 | 
            +
            ページネーションの関数に問題があるのかもしれないと思い、ページネーションの部分を
         | 
| 79 89 | 
             
            ```php
         | 
| 90 | 
            +
            <div class="pagination"><?php the_posts_pagination(array(
         | 
| 91 | 
            +
                            'screen_reader_text' => " "
         | 
| 92 | 
            +
                        )); ?></div>
         | 
| 93 | 
            +
            ```
         | 
| 94 | 
            +
            に変えましたが、変化なしです。
         | 
| 95 | 
            +
             | 
| 96 | 
            +
            追記3
         | 
| 97 | 
            +
            ?paged=にどんな数字を入れても1ページ目と同じものが表示されます。
         | 
| 98 | 
            +
             | 
| 99 | 
            +
            試したこと 4
         | 
| 100 | 
            +
            wordpressの1ページの表示を3で以下のコードで実行ました。
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            ```php
         | 
| 80 103 | 
             
            <?php get_header(); ?>
         | 
| 81 104 | 
             
            <div class="container">
         | 
| 82 105 | 
             
                <div class="div-content">
         | 
| @@ -90,116 +113,107 @@ | |
| 90 113 | 
             
                        </div>
         | 
| 91 114 |  | 
| 92 115 | 
             
                        <?php
         | 
| 93 | 
            -
                         | 
| 116 | 
            +
                        $paged = (int)(get_query_var('paged')) ? get_query_var('paged') : 1;
         | 
| 117 | 
            +
                        var_dump($paged);
         | 
| 94 | 
            -
             | 
| 118 | 
            +
                        $args = array(
         | 
| 95 | 
            -
             | 
| 119 | 
            +
                            'posts_per_page'   => 3,
         | 
| 120 | 
            +
                            'posts_per_archive_page' => 3,
         | 
| 96 | 
            -
             | 
| 121 | 
            +
                            'post_type' => 'post',
         | 
| 97 | 
            -
             | 
| 122 | 
            +
                            'paged' => $paged,
         | 
| 98 | 
            -
                                'category_name' => "diff_subscribers",
         | 
| 99 | 
            -
             | 
| 123 | 
            +
                            'order' => 'DESC',
         | 
| 100 | 
            -
             | 
| 124 | 
            +
                            'orderby' => 'date'
         | 
| 101 | 
            -
             | 
| 125 | 
            +
                        );
         | 
| 102 | 
            -
             | 
| 126 | 
            +
                        if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") {
         | 
| 127 | 
            +
                            $args['category_name'] = "diff_subscribers";
         | 
| 103 128 | 
             
                            $query = new WP_QUERY($args); 
         | 
| 104 129 | 
             
                            echo "<table><tbody>";
         | 
| 105 130 |  | 
| 106 | 
            -
                            if ($query->post_count !== 0)  | 
| 131 | 
            +
                            if ($query->post_count !== 0) {
         | 
| 107 | 
            -
                                while ($query->have_posts())  | 
| 132 | 
            +
                                while ($query->have_posts()) {
         | 
| 108 133 | 
             
                                    $query->the_post();
         | 
| 109 134 | 
             
                                    echo "<tr>".the_content()."</tr>";
         | 
| 110 | 
            -
                                endwhile;
         | 
| 111 | 
            -
             | 
| 135 | 
            +
                                }
         | 
| 136 | 
            +
                            }
         | 
| 112 137 | 
             
                            echo "</tbody></table>";
         | 
| 113 | 
            -
                            
         | 
| 114 | 
            -
             | 
| 138 | 
            +
             | 
| 115 | 
            -
                            query_posts('cat='.$cat_id);
         | 
| 116 | 
            -
                            echo "<table><tbody>";
         | 
| 117 | 
            -
                            
         | 
| 118 | 
            -
                            if (have_posts()) :
         | 
| 119 | 
            -
                                while (have_posts()) : the_post();
         | 
| 120 | 
            -
                                    echo "<tr>".the_content()."</tr>";
         | 
| 121 | 
            -
                                endwhile;
         | 
| 122 | 
            -
                            endif;
         | 
| 123 | 
            -
                            echo "</tbody></table>";
         | 
| 124 | 
            -
                            */
         | 
| 125 | 
            -
                            /*
         | 
| 126 | 
            -
                            $posts = get_posts(array(
         | 
| 127 | 
            -
                                'posts_per_page'   => 10,
         | 
| 128 | 
            -
                                'offset' => 0,
         | 
| 129 | 
            -
                                'category' => $cat_id,
         | 
| 130 | 
            -
                                'order' => 'DESC',
         | 
| 131 | 
            -
                                'orderby' => 'date'
         | 
| 132 | 
            -
                            ));
         | 
| 133 | 
            -
                            
         | 
| 134 | 
            -
                            echo "<table><tbody>";
         | 
| 135 | 
            -
                            foreach ($posts as $post) : setup_postdata($post);
         | 
| 136 | 
            -
                            echo "<tr>".the_content()."</tr>";
         | 
| 137 | 
            -
                            endforeach;
         | 
| 138 | 
            -
                            echo "</tbody></table>";
         | 
| 139 | 
            -
                            */
         | 
| 140 | 
            -
                        elseif (isset($_GET["order"]) && $_GET["order"] == "view_count")  | 
| 139 | 
            +
                        } elseif (isset($_GET["order"]) && $_GET["order"] == "view_count") {
         | 
| 141 140 | 
             
                            $cat_id = get_cat_ID("view_counts");
         | 
| 142 141 | 
             
                            //未実装
         | 
| 143 | 
            -
                        else  | 
| 142 | 
            +
                        } else {
         | 
| 144 | 
            -
                            $args = array(
         | 
| 145 | 
            -
                                'posts_per_page'   => 30,
         | 
| 146 | 
            -
                                'post_type' => 'post',
         | 
| 147 | 
            -
                                'offset' => 0,
         | 
| 148 | 
            -
             | 
| 143 | 
            +
                            $args['category_name'] = "subscribers";
         | 
| 149 | 
            -
                                'order' => 'DESC',
         | 
| 150 | 
            -
                                'orderby' => 'date'
         | 
| 151 | 
            -
                            );
         | 
| 152 | 
            -
                            
         | 
| 153 | 
            -
                            $query = new WP_QUERY($args); | 
| 144 | 
            +
                            $query = new WP_QUERY($args);
         | 
| 154 145 | 
             
                            echo "<table><tbody>";
         | 
| 155 | 
            -
                            var_dump($query->post_count);
         | 
| 156 | 
            -
                            if ($query->post_count !== 0)  | 
| 146 | 
            +
                            if ($query->post_count !== 0) {
         | 
| 157 | 
            -
                                while ($query->have_posts())  | 
| 147 | 
            +
                                while ($query->have_posts()) {
         | 
| 148 | 
            +
                                    $query->the_post();
         | 
| 158 149 | 
             
                                    echo "<tr>".the_content()."</tr>";
         | 
| 150 | 
            +
                                }
         | 
| 151 | 
            +
                            }
         | 
| 152 | 
            +
                            echo "</tbody></table>";   
         | 
| 153 | 
            +
                        }
         | 
| 154 | 
            +
                        if ($query->max_num_pages > 1) {
         | 
| 155 | 
            +
                            $paginate_links = paginate_links(array(
         | 
| 156 | 
            +
                                'base' => get_pagenum_link(1).'%_%',
         | 
| 157 | 
            +
                                'format' => '?page=%#%',
         | 
| 158 | 
            +
                                'current' => max(1, $paged),
         | 
| 159 | 
            +
                                'total' => $query->max_num_pages,
         | 
| 160 | 
            +
                                'prev_next' => true,
         | 
| 161 | 
            +
                                'prev_text' => '前へ',
         | 
| 162 | 
            +
                                'next_text' => '次へ'
         | 
| 159 | 
            -
             | 
| 163 | 
            +
                            ));
         | 
| 164 | 
            +
                        } 
         | 
| 160 | 
            -
             | 
| 165 | 
            +
                        wp_reset_postdata();
         | 
| 161 | 
            -
                            endif;
         | 
| 162 | 
            -
             | 
| 166 | 
            +
                        echo '<div class=""pagination">';
         | 
| 163 | 
            -
                            
         | 
| 164 | 
            -
                            /*
         | 
| 165 | 
            -
             | 
| 167 | 
            +
                        echo $paginate_links;
         | 
| 166 | 
            -
             | 
| 168 | 
            +
                        echo '</div>';
         | 
| 167 | 
            -
                            foreach ($posts as $post) : setup_postdata($post);
         | 
| 168 | 
            -
                            echo "<tr>".the_content()."</tr>";
         | 
| 169 | 
            -
                            endforeach;
         | 
| 170 | 
            -
                            echo "</tbody></table>";
         | 
| 171 | 
            -
                            */
         | 
| 172 | 
            -
                        endif;
         | 
| 173 169 | 
             
                        ?>
         | 
| 174 | 
            -
                        
         | 
| 175 | 
            -
                        
         | 
| 176 | 
            -
                        <div class="pagination"><?php online_the_posts_pagination(array(
         | 
| 177 | 
            -
                            'screen_reader_text' => " "
         | 
| 178 | 
            -
                        )); ?></div>
         | 
| 179 | 
            -
                        
         | 
| 180 170 | 
             
                    </main>
         | 
| 181 171 | 
             
                </div>
         | 
| 182 172 | 
             
            </div>
         | 
| 183 173 | 
             
            <?php get_footer(); ?>
         | 
| 184 174 | 
             
            ```
         | 
| 185 | 
            -
            URLに?order=diff_subscribersをつけた時だけ投稿が二重ループするようになりました。
         | 
| 186 175 |  | 
| 187 | 
            -
            追記
         | 
| 188 | 
            -
            `if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :`の中のコードが間違っていました。
         | 
| 189 | 
            -
             | 
| 176 | 
            +
            URLクエリがない場合
         | 
| 190 | 
            -
             | 
| 177 | 
            +
            1ページ目はsubscribersカテゴリの投稿が以下のように表示されます。
         | 
| 191 | 
            -
             | 
| 178 | 
            +
            投稿1
         | 
| 192 | 
            -
             | 
| 179 | 
            +
            投稿2
         | 
| 193 | 
            -
             | 
| 180 | 
            +
            投稿3
         | 
| 194 181 |  | 
| 195 | 
            -
            試したこと 3
         | 
| 196 | 
            -
            ページ | 
| 182 | 
            +
            1ページ目のページネーション
         | 
| 197 | 
            -
            ``` | 
| 183 | 
            +
            ```html
         | 
| 198 | 
            -
            <div class="pagination"> | 
| 184 | 
            +
            <div class="pagination">
         | 
| 199 | 
            -
             | 
| 185 | 
            +
            <span aria-current='page' class='page-numbers current'>1</span>
         | 
| 200 | 
            -
             | 
| 186 | 
            +
            <a class='page-numbers' href='http://localhost/TestPHP/ASMRrank/wordpress/?page=2'>2</a>
         | 
| 187 | 
            +
            <a class="next page-numbers" href="http://localhost/TestPHP/ASMRrank/wordpress/?page=2">次へ</a></div>
         | 
| 201 188 | 
             
            ```
         | 
| 202 | 
            -
            に変えましたが、変化なしです。
         | 
| 203 189 |  | 
| 204 | 
            -
            追記3
         | 
| 205 | 
            -
             | 
| 190 | 
            +
            2ページ目の投稿は1ページ目と同じ投稿が表示されます。
         | 
| 191 | 
            +
            2ページ目のページネーション
         | 
| 192 | 
            +
            ```html
         | 
| 193 | 
            +
            <div class="pagination">
         | 
| 194 | 
            +
            <span aria-current='page' class='page-numbers current'>1</span>
         | 
| 195 | 
            +
            <a class='page-numbers' href='http://localhost/TestPHP/ASMRrank/wordpress/?page=2?page=2'>2</a>
         | 
| 196 | 
            +
            <a class="next page-numbers" href="http://localhost/TestPHP/ASMRrank/wordpress/?page=2?page=2">次へ</a></div> 
         | 
| 197 | 
            +
            ```
         | 
| 198 | 
            +
            2ページ目で次へを押すと?page=2?page=2
         | 
| 199 | 
            +
            もう一度押すと?page=2%3Fpage%3D2?page=2
         | 
| 200 | 
            +
            もう一度押すと?page=2%3Fpage%3D2%3Fpage%3D2?page=2
         | 
| 201 | 
            +
            という風にURLクエリが長くなっていきます。
         | 
| 202 | 
            +
             | 
| 203 | 
            +
            URLクエリがorder=diff_subscribersの場合
         | 
| 204 | 
            +
            1ページ目はsubscribersカテゴリの投稿が以下のように表示されます。
         | 
| 205 | 
            +
            投稿1
         | 
| 206 | 
            +
            投稿2
         | 
| 207 | 
            +
            投稿3
         | 
| 208 | 
            +
             | 
| 209 | 
            +
            ページネーションの次へを押すとsubsribersカテゴリの
         | 
| 210 | 
            +
            投稿1
         | 
| 211 | 
            +
            投稿2
         | 
| 212 | 
            +
            投稿3
         | 
| 213 | 
            +
            が表示されます。
         | 
| 214 | 
            +
             | 
| 215 | 
            +
            次へを押すごとに
         | 
| 216 | 
            +
            ?order=diff_subsribers?page=2
         | 
| 217 | 
            +
            ?order=diff_subsribers%3Fpage%3D2?page=2
         | 
| 218 | 
            +
            ?order=diff_subsribers%3Fpage%3D2%3Fpage%3D2?page=2
         | 
| 219 | 
            +
            という風にURLクエリが長くなっていきます。
         | 
6
追記3を追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -199,4 +199,7 @@ | |
| 199 199 | 
             
                            'screen_reader_text' => " "
         | 
| 200 200 | 
             
                        )); ?></div>
         | 
| 201 201 | 
             
            ```
         | 
| 202 | 
            -
            に変えましたが、変化なしです。
         | 
| 202 | 
            +
            に変えましたが、変化なしです。
         | 
| 203 | 
            +
             | 
| 204 | 
            +
            追記3
         | 
| 205 | 
            +
            ?paged=にどんな数字を入れても1ページ目と同じものが表示されます。
         | 
5
文を見やすく修正
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -72,7 +72,7 @@ | |
| 72 72 |  | 
| 73 73 | 
             
            試したこと 1
         | 
| 74 74 | 
             
            コードのコメントアウトに書いてある通り、get_postsを使ったループも試してみましたが、こちらも二重ループになってしまいます。
         | 
| 75 | 
            -
            var_dump($query->post_count)とvar_dump(count($posts))はint(6)と表示されました。
         | 
| 75 | 
            +
            `var_dump($query->post_count)`と`var_dump(count($posts))`は`int(6)`と表示されました。
         | 
| 76 76 |  | 
| 77 77 | 
             
            試したこと 2
         | 
| 78 78 | 
             
            コードを以下のように書き換え、wordpressの設定で1ページに表示する投稿数を30に変更しました。
         | 
| @@ -185,12 +185,12 @@ | |
| 185 185 | 
             
            URLに?order=diff_subscribersをつけた時だけ投稿が二重ループするようになりました。
         | 
| 186 186 |  | 
| 187 187 | 
             
            追記
         | 
| 188 | 
            -
            if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :の中のコードが間違っていました。
         | 
| 188 | 
            +
            `if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :`の中のコードが間違っていました。
         | 
| 189 | 
            -
            誤 $query = new WP_QUERY('cat='.$cat_id); 
         | 
| 189 | 
            +
            誤 `$query = new WP_QUERY('cat='.$cat_id);` 
         | 
| 190 | 
            -
            正 $query = new WP_QUERY($args);
         | 
| 190 | 
            +
            正 `$query = new WP_QUERY($args);`
         | 
| 191 | 
            -
            ただ、$argsの'posts_per_page'を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
         | 
| 191 | 
            +
            ただ、`$args`の`'posts_per_page'`を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
         | 
| 192 192 | 
             
            追記2
         | 
| 193 | 
            -
            $argsの'posts_per_page'を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
         | 
| 193 | 
            +
            `$args`の`'posts_per_page'`を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
         | 
| 194 194 |  | 
| 195 195 | 
             
            試したこと 3
         | 
| 196 196 | 
             
            ページネーションの関数に問題があるのかもしれないと思い、ページネーションの部分を
         | 
4
試した
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -190,4 +190,13 @@ | |
| 190 190 | 
             
            正 $query = new WP_QUERY($args);
         | 
| 191 191 | 
             
            ただ、$argsの'posts_per_page'を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
         | 
| 192 192 | 
             
            追記2
         | 
| 193 | 
            -
            $argsの'posts_per_page'を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
         | 
| 193 | 
            +
            $argsの'posts_per_page'を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
         | 
| 194 | 
            +
             | 
| 195 | 
            +
            試したこと 3
         | 
| 196 | 
            +
            ページネーションの関数に問題があるのかもしれないと思い、ページネーションの部分を
         | 
| 197 | 
            +
            ```php
         | 
| 198 | 
            +
            <div class="pagination"><?php the_posts_pagination(array(
         | 
| 199 | 
            +
                            'screen_reader_text' => " "
         | 
| 200 | 
            +
                        )); ?></div>
         | 
| 201 | 
            +
            ```
         | 
| 202 | 
            +
            に変えましたが、変化なしです。
         | 
3
追記2を追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -188,4 +188,6 @@ | |
| 188 188 | 
             
            if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :の中のコードが間違っていました。
         | 
| 189 189 | 
             
            誤 $query = new WP_QUERY('cat='.$cat_id); 
         | 
| 190 190 | 
             
            正 $query = new WP_QUERY($args);
         | 
| 191 | 
            -
            ただ、$argsの'posts_per_page'を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
         | 
| 191 | 
            +
            ただ、$argsの'posts_per_page'を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
         | 
| 192 | 
            +
            追記2
         | 
| 193 | 
            +
            $argsの'posts_per_page'を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
         | 
2
コードの修正と追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -100,7 +100,7 @@ | |
| 100 100 | 
             
                                'orderby' => 'date'
         | 
| 101 101 | 
             
                            );
         | 
| 102 102 |  | 
| 103 | 
            -
                            $query = new WP_QUERY( | 
| 103 | 
            +
                            $query = new WP_QUERY($args); 
         | 
| 104 104 | 
             
                            echo "<table><tbody>";
         | 
| 105 105 |  | 
| 106 106 | 
             
                            if ($query->post_count !== 0) :
         | 
| @@ -182,4 +182,10 @@ | |
| 182 182 | 
             
            </div>
         | 
| 183 183 | 
             
            <?php get_footer(); ?>
         | 
| 184 184 | 
             
            ```
         | 
| 185 | 
            -
            URLに?order=diff_subscribersをつけた時だけ投稿が二重ループするようになりました。
         | 
| 185 | 
            +
            URLに?order=diff_subscribersをつけた時だけ投稿が二重ループするようになりました。
         | 
| 186 | 
            +
             | 
| 187 | 
            +
            追記
         | 
| 188 | 
            +
            if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :の中のコードが間違っていました。
         | 
| 189 | 
            +
            誤 $query = new WP_QUERY('cat='.$cat_id); 
         | 
| 190 | 
            +
            正 $query = new WP_QUERY($args);
         | 
| 191 | 
            +
            ただ、$argsの'posts_per_page'を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
         | 
1
試したことを追記
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -72,4 +72,114 @@ | |
| 72 72 |  | 
| 73 73 | 
             
            試したこと 1
         | 
| 74 74 | 
             
            コードのコメントアウトに書いてある通り、get_postsを使ったループも試してみましたが、こちらも二重ループになってしまいます。
         | 
| 75 | 
            -
            var_dump($query->post_count)とvar_dump(count($posts))はint(6)と表示されました。
         | 
| 75 | 
            +
            var_dump($query->post_count)とvar_dump(count($posts))はint(6)と表示されました。
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            試したこと 2
         | 
| 78 | 
            +
            コードを以下のように書き換え、wordpressの設定で1ページに表示する投稿数を30に変更しました。
         | 
| 79 | 
            +
            ```php
         | 
| 80 | 
            +
            <?php get_header(); ?>
         | 
| 81 | 
            +
            <div class="container">
         | 
| 82 | 
            +
                <div class="div-content">
         | 
| 83 | 
            +
                    <main>
         | 
| 84 | 
            +
                        <div class="div-post-sort">
         | 
| 85 | 
            +
                            <ul class="ul-post-sort">
         | 
| 86 | 
            +
                            <li><a href="<?php echo home_url(); ?>">ファン数</a></li>
         | 
| 87 | 
            +
                            <li><a href="<?php echo home_url()."?order=diff_subsribers"; ?>">急上昇</a></li>
         | 
| 88 | 
            +
                            <li><a href="<?php echo home_url()."?order=view_count"; ?>">再生回数</a></li>
         | 
| 89 | 
            +
                            </ul>
         | 
| 90 | 
            +
                        </div>
         | 
| 91 | 
            +
                        
         | 
| 92 | 
            +
                        <?php
         | 
| 93 | 
            +
                        if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :
         | 
| 94 | 
            +
                            $args = array(
         | 
| 95 | 
            +
                                'posts_per_page'   => 30,
         | 
| 96 | 
            +
                                'post_type' => 'post',
         | 
| 97 | 
            +
                                'offset' => 0,
         | 
| 98 | 
            +
                                'category_name' => "diff_subscribers",
         | 
| 99 | 
            +
                                'order' => 'DESC',
         | 
| 100 | 
            +
                                'orderby' => 'date'
         | 
| 101 | 
            +
                            );
         | 
| 102 | 
            +
                            
         | 
| 103 | 
            +
                            $query = new WP_QUERY('cat='.$cat_id); 
         | 
| 104 | 
            +
                            echo "<table><tbody>";
         | 
| 105 | 
            +
                            
         | 
| 106 | 
            +
                            if ($query->post_count !== 0) :
         | 
| 107 | 
            +
                                while ($query->have_posts()) :
         | 
| 108 | 
            +
                                    $query->the_post();
         | 
| 109 | 
            +
                                    echo "<tr>".the_content()."</tr>";
         | 
| 110 | 
            +
                                endwhile;
         | 
| 111 | 
            +
                            endif;
         | 
| 112 | 
            +
                            echo "</tbody></table>";
         | 
| 113 | 
            +
                            
         | 
| 114 | 
            +
                            /*
         | 
| 115 | 
            +
                            query_posts('cat='.$cat_id);
         | 
| 116 | 
            +
                            echo "<table><tbody>";
         | 
| 117 | 
            +
                            
         | 
| 118 | 
            +
                            if (have_posts()) :
         | 
| 119 | 
            +
                                while (have_posts()) : the_post();
         | 
| 120 | 
            +
                                    echo "<tr>".the_content()."</tr>";
         | 
| 121 | 
            +
                                endwhile;
         | 
| 122 | 
            +
                            endif;
         | 
| 123 | 
            +
                            echo "</tbody></table>";
         | 
| 124 | 
            +
                            */
         | 
| 125 | 
            +
                            /*
         | 
| 126 | 
            +
                            $posts = get_posts(array(
         | 
| 127 | 
            +
                                'posts_per_page'   => 10,
         | 
| 128 | 
            +
                                'offset' => 0,
         | 
| 129 | 
            +
                                'category' => $cat_id,
         | 
| 130 | 
            +
                                'order' => 'DESC',
         | 
| 131 | 
            +
                                'orderby' => 'date'
         | 
| 132 | 
            +
                            ));
         | 
| 133 | 
            +
                            
         | 
| 134 | 
            +
                            echo "<table><tbody>";
         | 
| 135 | 
            +
                            foreach ($posts as $post) : setup_postdata($post);
         | 
| 136 | 
            +
                            echo "<tr>".the_content()."</tr>";
         | 
| 137 | 
            +
                            endforeach;
         | 
| 138 | 
            +
                            echo "</tbody></table>";
         | 
| 139 | 
            +
                            */
         | 
| 140 | 
            +
                        elseif (isset($_GET["order"]) && $_GET["order"] == "view_count") :
         | 
| 141 | 
            +
                            $cat_id = get_cat_ID("view_counts");
         | 
| 142 | 
            +
                            //未実装
         | 
| 143 | 
            +
                        else :
         | 
| 144 | 
            +
                            $args = array(
         | 
| 145 | 
            +
                                'posts_per_page'   => 30,
         | 
| 146 | 
            +
                                'post_type' => 'post',
         | 
| 147 | 
            +
                                'offset' => 0,
         | 
| 148 | 
            +
                                'category_name' => "subscribers",
         | 
| 149 | 
            +
                                'order' => 'DESC',
         | 
| 150 | 
            +
                                'orderby' => 'date'
         | 
| 151 | 
            +
                            );
         | 
| 152 | 
            +
                            
         | 
| 153 | 
            +
                            $query = new WP_QUERY($args); 
         | 
| 154 | 
            +
                            echo "<table><tbody>";
         | 
| 155 | 
            +
                            var_dump($query->post_count);
         | 
| 156 | 
            +
                            if ($query->post_count !== 0) :
         | 
| 157 | 
            +
                                while ($query->have_posts()) : $query->the_post();
         | 
| 158 | 
            +
                                    echo "<tr>".the_content()."</tr>";
         | 
| 159 | 
            +
                                endwhile;
         | 
| 160 | 
            +
                                wp_reset_postdata();
         | 
| 161 | 
            +
                            endif;
         | 
| 162 | 
            +
                            echo "</tbody></table>";
         | 
| 163 | 
            +
                            
         | 
| 164 | 
            +
                            /*
         | 
| 165 | 
            +
                            $posts = get_posts($args);
         | 
| 166 | 
            +
                            echo "<table><tbody>";
         | 
| 167 | 
            +
                            foreach ($posts as $post) : setup_postdata($post);
         | 
| 168 | 
            +
                            echo "<tr>".the_content()."</tr>";
         | 
| 169 | 
            +
                            endforeach;
         | 
| 170 | 
            +
                            echo "</tbody></table>";
         | 
| 171 | 
            +
                            */
         | 
| 172 | 
            +
                        endif;
         | 
| 173 | 
            +
                        ?>
         | 
| 174 | 
            +
                        
         | 
| 175 | 
            +
                        
         | 
| 176 | 
            +
                        <div class="pagination"><?php online_the_posts_pagination(array(
         | 
| 177 | 
            +
                            'screen_reader_text' => " "
         | 
| 178 | 
            +
                        )); ?></div>
         | 
| 179 | 
            +
                        
         | 
| 180 | 
            +
                    </main>
         | 
| 181 | 
            +
                </div>
         | 
| 182 | 
            +
            </div>
         | 
| 183 | 
            +
            <?php get_footer(); ?>
         | 
| 184 | 
            +
            ```
         | 
| 185 | 
            +
            URLに?order=diff_subscribersをつけた時だけ投稿が二重ループするようになりました。
         | 
