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

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

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

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

PHP

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

Q&A

解決済

1回答

2415閲覧

Seamless Sticky Custom Post Typesを使用して一覧ページの先頭に固定表示させてページネーションを正常に動作させたい

TakahitoSugiura

総合スコア13

WordPress

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

PHP

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

0グッド

0クリップ

投稿2019/01/28 08:58

編集2019/01/29 07:13

表題の件ですが、指定した記事を一覧ページの上位に表示させたいのですが、
現在以下の記述で一覧ページの表示はうまくいくのですがページネーションがうまく機能していません。
記事はこれ以上ないのに5ページ目、6ページ目のリンクが存在します。

・Seamless Sticky Custom Post Typesのプラグインを使用して任意の記事に「先頭に固定表示」

WPに詳しい方ではないので不足な情報等あるかと思いますがどなたかご教示いただけましたら幸いです。
よろしくお願い致します。

<!--archive.php--> <ul> <?php $list_cnt = 15; //表示させたい件数 $sticky = get_option( 'sticky_posts' ); //先頭固定の記事 if ( !empty( $sticky ) )$list_cnt -= count( $sticky ); $the_query = new WP_Query( array( 'post_type' => array( 'products' ), 'post__not_in' => array( $data[ 0 ]->ID ), 'posts_per_page' => $list_cnt, 'paged' => get_query_var( 'paged' ) ) ); ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post();?> <li>contents</li> <?php endwhile; wp_reset_postdata(); ?> </ul> <?php if ( function_exists( "pagination" ) ) { pagination( $additional_loop-- > max_num_pages ); } ?> <!--function.php--> <?php function pagination( $pages = '', $range = 2 ) { $showitems = ( $range * 5 ) + 1; //表示するページ数(5ページを表示) global $paged; //現在のページ値 if ( empty( $paged ) )$paged = 1; //デフォルトのページ if ( $pages == '' ) { global $wp_query; $pages = $wp_query->max_num_pages; //全ページ数を取得 if ( !$pages ) //全ページ数が空の場合は、1とする { $pages = 1; } } if ( 1 != $pages ) //全ページが1でない場合はページネーションを表示する { echo "<div class=\"pagenation\">\n"; echo "<ul>\n"; for ( $i = 1; $i <= $pages; $i++ ) { if ( 1 != $pages && ( !( $i >= $paged + $range + 1 || $i <= $paged - $range - 1 ) || $pages <= $showitems ) ) { //三項演算子での条件分岐 echo( $paged == $i ) ? "<li class=\"active\">" . $i . "</li>\n": "<li><a href='" . get_pagenum_link( $i ) . "'>" . $i . "</a></li>\n"; } } echo "</ul>\n"; echo "</div>\n"; } } ?>

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

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

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

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

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

tabuu

2019/01/29 06:28

>if ( !empty($sticky) ) $list_cnt -= count($sticky); 通常であれば、このような処理を記述せずともWordpressがページネーションも含めて自動調整しますが、敢えて記述している理由を教えていただけないでしょうか? また、コードにはインデントを付けていただけると見やすくなるのでおすすめです。
TakahitoSugiura

2019/01/29 07:20

>if ( !empty($sticky) ) $list_cnt -= count($sticky); こちらの記述に関しては調べてこれ必要そうだなと使わせてもらったものなので正直しっかり理解して記述しているものではないです。固定記事を除外する為に必要な記述かなという解釈でいます。 コードの件は大変失礼しました。修正させて頂きました。
tabuu

2019/01/29 07:32

>固定記事を除外する為に必要な記述かなという解釈でいます。 そのあたりはWordPressが自動で処理するはずです。 そのコードを除去してみたらどのようになるでしょう?
TakahitoSugiura

2019/02/28 06:28

>tabuuさん 反応頂いたのにも関わらずお返事が出来ておらず大変申し訳ございませんでした。 諸事情によりこの案件は締め切らせて頂きたいと思います。
guest

回答1

0

自己解決

未解決ですが諸事情により当案件は締切たいと思います。

投稿2019/02/28 06:29

TakahitoSugiura

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問