質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

718閲覧

wordpressの自作テーマのページネーションについて

homepage-site

総合スコア28

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/07/09 11:41

編集2021/07/11 14:19

前提・実現したいこと

wordpressの自作テーマの固定ページのページネーションで1ページ目以降のコンテンツが変わらない

発生している問題・エラーメッセージ

なし

<?php /* Template Name: トップページ Template Post Type: page */ ?> <?php get_header(); ?> <?php $paged = get_query_var('paged'); $wp_query = new WP_Query(); $my_posts = array( 'post_type' => "post",//投稿タイプ設定 'posts_per_page' => get_option('posts_per_page'), 'paged' => get_query_var( 'paged', 1 ) ); $wp_query->query( $my_posts ); if( $wp_query->have_posts() ): while( $wp_query->have_posts() ) : $wp_query->the_post(); ?> <?php /**** ▼1件分の投稿内容HTML ****/ ?> <ul class="newarrival_list"> <li class="custom"><a href="<?php echo get_permalink(); ?>"> <div class="img-wrap"> <!--画像を追加--> <?php // アイキャッチ画像の確認 if ( has_post_thumbnail()) { // 存在する the_post_thumbnail(); } else { // 存在しない echo '<img src="noimage.jpg">'; } ?></div> <!--リンククラスつきのタイトルを追加--> <div class="img-wrap2"> <h2><?php the_title(); ?></h2></div> <!--日付けを追加-->   <div class="img-wrap3"> <?php the_time('Y/m/d'); ?></div> <!--リンククラス付きのカテゴリーを追加--> <?php $categories = get_the_category(); if ( $categories ) { echo '<ul>'; foreach ( $categories as $category ) { echo '<li class="cat1"'.$category->slug.'"><a href="'.esc_url(get_category_link($category->term_id)).'">'.$category->name.'</a></li>'; } echo '</ul>'; } ?>   <!--リンククラス付きのコメント数を追加--> <?php $num_comments = get_comments_number(); if ( $num_comments == 0 ) { $comments = __('No Comments'); // 댓글이 없을 경우 } elseif ( $num_comments > 1 ) { $comments = $num_comments . __(' Comments'); // 댓글이 2개 이상일 경우 } else { $comments = __('1 Comment'); // 댓글이 1개일 경우 } $write_comments = '<span class="singlecomments"><a href="' . get_comments_link() .'">'. $comments.'</a></span>'; echo $write_comments; ?> <!--リンククラス付きのコメントの抜粋を追加--> <div class="img-wrap4"> <?php the_excerpt(); ?></div> <!--リンククラス付きの記事を読むを追加--> <div class="img-wrap5"> <a href="<?php the_permalink(); ?>">記事を読む</a></div> </ul> <?php endwhile; else: ?> <p>記事はありません!</p> <?php endif; ?><!-- ループ終了 --> <div class="pager"> <?php global $wp_rewrite; $paginate_base = get_pagenum_link(1); if(strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()){ $paginate_format = ''; $paginate_base = add_query_arg('paged','%#%'); } else{ $paginate_format = (substr($paginate_base,-1,1) == '/' ? '' : '/') . user_trailingslashit('page/%#%/','paged');; $paginate_base .= '%_%'; } echo paginate_links(array( 'base' => $paginate_base, 'format' => $paginate_format, 'total' => $wp_query->max_num_pages, 'mid_size' => 5, 'current' => ($paged ? $paged : 1), 'prev_text' => '«', 'next_text' => '»', )); ?></div> <?php get_footer(); ?>

試したこと

$paged = get_query_var('page');
ダッシュボードの表示数と'posts_per_page'の取得数を揃える

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

<?php /* Template Name: キタサンブラック Template Post Type: page */ ?> <?php if ( have_posts() ): ?> <?php while ( have_posts() ) : the_post(); ?>
<!--ループ--> <article class="article__item"> <a href="<?php the_permalink(); ?>"> <h1 class="ttl"><?php the_title(); ?></h1> <time class="date"><?php the_time(); ?></time> </a> </article> <!--//ループ-->
<?php endwhile; ?>
<!--ページ送り--> <nav class="pagenav"> <?php global $wp_query; $big = 999999999; // need an unlikely integer echo paginate_links( array( 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ), 'format' => '?paged=%#%', 'current' => max( 1, get_query_var('paged') ), 'total' => $wp_query->max_num_pages ) ); ?> </nav> <!--//ページ送り-->
<?php else: ?>
<!--投稿が見つからない--> <p>Not Found.</p> <!--//投稿が見つからない-->
<?php endif; ?>

コードを整理して考えたときに何とか作ることができました。
1日中調べたことで、いろんなことがわかったのでよかったです。

投稿2021/07/11 15:53

homepage-site

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

回答ではないのですが、コード部分は質問を書き込む画面にあるコード「<code>」を使って書きましょう。

PHP

1<?php 2endif; 3wp_reset_postdata(); 4?>

こんな感じで。
そうしないと見にくすぎて内容すら見てもらえない場合が多いですから・・・
プレビュー見ながら書けば間違いないです。

投稿2021/07/09 14:37

landy77

総合スコア1614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

homepage-site

2021/07/11 14:20

了解しました。変更いたしましたので、よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問