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

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

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

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

PHP

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

Q&A

解決済

1回答

1257閲覧

カスタム投稿のアーカイブページに独自HTMLのページャーを設置したい

Yui_note

総合スコア15

WordPress

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

PHP

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

0グッド

0クリップ

投稿2021/04/05 03:56

編集2021/04/05 04:15

カスタム投稿のアーカイブ一覧ページの中に、ページャーを独自のHTMLで出力したいのですがカスタマイズの方法がわかりません。

現状のソースコード

php

1function pagenation($limit = NULL, $post_typed = 'posts') { 2 global $wp_rewrite; 3 global $paged; 4 global $wp_query; 5 6 // 検索条件 7 $query = array(); 8 if ($limit != NULL) { 9 $query['posts_per_page'] = $limit; 10 } 11 if (count($query) != 0) { 12 $wp_query->query($query); 13 } 14 15 $wp_query->query(array( 16 'post_type' => $post_typed, 17 )); 18 $paginate_base = get_pagenum_link(); 19 20 if( strpos( $paginate_base, '?' ) || !$wp_rewrite->using_permalinks() ) { 21 $paginate_format = ''; 22 $paginate_base = add_query_arg( 'paged', '%#%' ); 23 } else { 24 $paginate_format = (substr( $paginate_base, -1, 1 ) == '/' ? '' : '/') . user_trailingslashit('page/%#%/','paged'); 25 $paginate_base .= '%_%'; 26 } 27 28 29 if( $paged < 2 ) { 30 $paged = 1; 31 } 32 $args = array( 33 'base' => $paginate_base, 34 'format' => $paginate_format, 35 'total' => $wp_query->max_num_pages, 36 'current' => $paged, 37 'show_all' => false, 38 'prev_next' => true, 39 'prev_text' => '前のページへ', 40 'next_text' => '次のページへ', 41 'type' => 'array', 42 ); 43 $pagenate_array = paginate_links($args); 44 45 // 配列がある場合のみ 46 if (is_array($pagenate_array) == TRUE) { 47 $pagenate .= '<div class="p-pager-list"><ul class="p-pager-list__number c-list">'; 48 foreach ($pagenate_array as $key => $value) { 49 50 if (preg_match('/current/', $value) == TRUE) { 51 $class = ''; 52 } 53 else { 54 $class = ''; 55 } 56 57 // $value = "<li class="{$class} p-pager-list__arrow">".$value.'</li>'; 58 // リンク追加 59 $pagenate .= $value; 60 } 61 62 $pagenate .= '</ul></div>'; 63 echo $pagenate; 64 } 65} 66

出力されるHTML

HTML

1<div class="p-pager-list"> 2<ul class="p-pager-list__number c-list"> 3<a class="prev page-numbers" href="/">前のページへ</a> 4<a class="page-numbers" href="/">1</a><span aria-current="page" class="page-numbers current">2</span> 5<a class="page-numbers" href="/">3</a> 6<a class="page-numbers" href="/">4</a> 7<a class="next page-numbers" href="">次のページへ</a> 8</ul> 9</div>

ul liの様な形で出力される様に変更したい

HTML

1<div class="p-pager-list"> 2<ul class="p-pager-list__number c-list"> 3<li class="a"><a class="prev page-numbers" href="/">前のページへ</a></li> 4<li class="a"><a class="page-numbers current" href="/">2</a></li> 5<li class="a"><a class="page-numbers" href="/">3</a></li> 6<li class="a"><a class="next page-numbers" href="/">前のページへ</a></li> 7</ul> 8</div>

上記の様にul liタグの形で出力される様にしたいのですが、
どういったコードを入れたらいいのか検討がつきません。

「'type' => 'array',」を「'type' => 'list',」に変更しましたところ、
真っ白になり何も表示されなくなりました。。
お力をお貸しいただきたいです。
どうぞよろしくお願いいたします。

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

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

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

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

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

KazuhiroHatano

2021/04/05 05:08

コメントアウトしてるコードがそれに当たると思うんですが それじゃダメだったんですか?
Yui_note

2021/04/05 05:39

ご教授ありがとうございます!コメントアウト外しましたところ、見事表示されました! よくよくコードを確認しましたところ、$pagenateで$valueを呼び出していました。。 初歩的なところでお恥ずかしいです。。とても助かりました、ありがとうございました。m ちなみになんですが、もしよろしければう1点だけお伺いさせていただきたいところがございました。。 「'prev_next' => true,」で「前へ」「次へ」のボタンを表示させておりましたが、 このボタンのli要素に独自のクラスを付与したいと思っておりまして、 トライしたこととしましては、 'prev_text' => '前のページへ', 'next_text' => '次のページへ', ←こちらの部分にliを直接入力 'prev_text' => '<li class="a">前のページへ</li>', 'next_text' => '<li class="a">次のページへ</li>' 上記の様にliコードを直接入力しますと、なぜかそれぞれのボタンが2重が表示されてしまいました。 前へ、次へボタンのli要素にクラスを追加することは可能なのでしょうか。。 厚かましく追加質問してしまいまして申し訳ございません。。 スルーしていただいても大丈夫です、もし何かお分かりでしたら教えていただけましたら幸いです。 どうぞよろしくお願いいたします。m
guest

回答1

0

自己解決

// $value = "<li class="{$class} p-pager-list__arrow">".$value.'</li>';

上記のコメントアウト部分を外したところliリストが表示されました。

投稿2021/04/05 07:27

編集2021/04/05 07:31
Yui_note

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問