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

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

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

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

PHP

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

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

Q&A

0回答

2409閲覧

WordPress | 固定ページに『記事一覧(ページネーション付き)』を、ショートコードで設置出来るようにしたい

hogeniho

総合スコア58

WordPress

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

PHP

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

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

0グッド

0クリップ

投稿2019/12/12 05:55

以下について、どなたかご教授いただきたいです。よろしくお願いいたしますm(_ _)m

やりたいこと

・固定ページに記事一覧を設置したい
・『1・2・3...10』のようなページネーションもあわせて設定したい
・編集画面からショートコードで設置できるようにしたい
・プラグインを使わずに実装したい

現在の状態

OK
・記事一覧が表示できる
・設定したショートコードが使用出来る

NG
・ページネーションが表示されない

試したこと

https://plusers.net/wordpress_theme_5
(記事一覧は表示されたが、ページネーションが表示されない)

作業環境

バージョン: WordPress 5.2.4
テーマ:_s(underscores)
※別途、子テーマを使って編集

ソースコード

function.php

//--------------------------------------------------------------------------- // ショートコードを追加する // 記述例 // [myphp file='hoge'] //--------------------------------------------------------------------------- function my_php_Include($params = array()) { extract(shortcode_atts(array('file' => 'default'), $params)); ob_start(); include(STYLESHEETPATH . "/component/$file.php"); return ob_get_clean(); } add_shortcode('myphp', 'my_php_Include'); //--------------------------------------------------------------------------- // ページネーション用に関数を定義する //--------------------------------------------------------------------------- function the_pagination() { global $st_query; $bignum = 999999999; if ($st_query->max_num_pages <= 1) return; echo '<nav class="pagination">'; echo paginate_links(array( 'base' => str_replace($bignum, '%#%', esc_url(get_pagenum_link($bignum))), 'format' => '', 'current' => max(1, get_query_var('paged')), 'total' => $st_query->max_num_pages, 'prev_text' => '&larr;', 'next_text' => '&rarr;', 'type' => 'list', 'end_size' => 3, 'mid_size' => 3 )); echo '</nav>'; }

component/loop-content.php

<!--投稿(post) or 固定ページ(page) | 表示数を指定 --> <!--[myphp file='loop-content'] --> <?php $args = array( 'post_type' => 'post', 'posts_per_page' => 3, 'paged' => (get_query_var('paged')) ? get_query_var('paged') : 1 ); $st_query = new WP_Query($args); ?> <?php if ($st_query->have_posts()) : ?> <?php while ($st_query->have_posts()) : $st_query->the_post(); ?> <!-- 記事があったときの処理 --> <article <?php post_class('article-list'); ?>> <a href="<?php the_permalink(); ?>"> <div class="img-wrap"> <!--画像を追加--> <?php if (has_post_thumbnail()) : ?> <?php the_post_thumbnail('medium'); ?> <?php else : ?> <img src="<?php echo get_stylesheet_directory_uri(); ?>/common/no-image.gif" alt="no-img" /> <?php endif; ?> <!--カテゴリ--> <?php if (!is_category() && has_category()) : ?> <span class="cat-data"> <?php $postcat = get_the_category(); echo $postcat[0]->name; ?> </span> <?php endif; ?> </div> <!--end img-warp--> <div class="text"> <!--タイトル--> <h2><?php the_title(); ?></h2> <!--投稿日を表示--> <span class="article-date"> <i class="far fa-clock"></i> <time datetime="<?php echo get_the_date('Y-m-d'); ?>"> <?php echo get_the_date(); ?> </time> </span> <!--著者を表示--> <span class="article-author"> <i class="fas fa-user"></i><?php the_author(); ?> </span> <!--抜粋--> <?php the_excerpt(); ?> </div> <!--end text--> </a> </article> <?php endwhile; ?> <div class="pagination"> <!-- ページネーション --> <?php echo paginate_links(array( 'type' => 'list', 'mid_size' => '1', 'prev_text' => '<i class="fas fa-angle-left"></i>', 'next_text' => '<i class="fas fa-angle-right"></i>' )); ?> </div> <?php else : ?> <!-- 記事がなかった時の処理 --> <p>記事はありません</p> <?php endif; ?>

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問