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

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

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

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

PHP

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

Q&A

解決済

1回答

599閲覧

【WordPressループ】offsetを使いつつページ送りさせる方法を教えてください

kudo_a

総合スコア13

WordPress

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

PHP

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

0グッド

0クリップ

投稿2018/11/28 09:04

編集2018/11/28 09:19

前提・実現したいこと

WordPressでサイトを構築中ですが、
TOPページの記事の表示を、

【 1 】【 2 】←大きめに表示
【3】 ←3件目以降は小さめに表示
【4】 
【5】



というレイアウトにし、ページ送りも設置しようと考えています。
1・2件目を一つ目のループ
3件目以降を二つ目のループで分けて作っています。

二つ目のループは下記の通り記述しました。
(こちらを参考にしました:https://tuono034s.com/web-entry/1975/)

<?php if (have_posts()) : ?> <?php $paged = get_query_var('paged') ? get_query_var('paged') : 1 ; $perpage = 8; $perpage = get_option('posts_per_page'); $offset = ($paged - 1) * $perpage + 2; query_posts('offset=' . $offset) ?> <?php while (have_posts()) : the_post(); ?> <li>記事内容</li> <?php endwhile; endif; ?> <?php wp_pagenavi(); ?>

offsetは変数にしているので影響ないかと思うのですが、
query_postsを使っているためかページ送りがうまく機能しません。
どのような書き方に直すとよろしいでしょうか?
ご教授よろしくお願いします。

ちなみにページ送りはプラグインのWP-PageNaviを使用しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

そもそもCSSで処理できそうな気がします。

HTML

1<ul> 2<li>記事内容</li> 3<li>記事内容</li> 4<li>記事内容</li> 5<li>記事内容</li> 6<li>記事内容</li> 7<li>記事内容</li> 8</ul>

CSS

1li:nth-of-type(1), 2li:nth-of-type(2) { 3 color:red; 4} 5```**動くサンプル:**[https://jsfiddle.net/q4veg6n0/](https://jsfiddle.net/q4veg6n0/) 6 7--- 8 9**追記:** 10 11そもそもデフォルトのループで。 12```PHP 13<?php 14if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } 15elseif ( get_query_var('page') ) { $paged = get_query_var('page'); } 16else { $paged = 1; } 17$my_count = 0; 18if (have_posts()) : while ( have_posts() ) : the_post(); 19 if ( $paged === 1 && $my_count < 2 ) : ?> 20 <li>記事内容</li><?php 21 else: ?> 22 <li>記事内容</li><?php 23 endif; 24 $my_count++; 25endwhile; endif; 26wp_pagenavi(); ?>

【[wordpress] get_query_var(‘page’)でページ数を取得できない | BlueBear I/O】
http://blue-bear.jp/kb/wordpress-get_query_varpageでページ数を取得できない/

【WordPressの投稿ループの中で連番をカウントする方法|株式会社ゼロワンアース】
https://01earth.jp/web-create/wordpress/count-in-loop-in-wp/

投稿2018/11/29 15:54

編集2018/11/30 16:34
kei344

総合スコア69398

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

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

kudo_a

2018/11/30 01:29

ご回答とご提案どうもありがとうございます! cssも具体的に教えていただきありがとうございました。 有効な手段かと思いますので検討いたします。 欲を言えば2ページ目以降は 【11】←2ページ目1件目の記事 【12】  【13】 ・ ・ ・ というように1ページ目の横並びで大きく見せるレイアウトを 継承しない方法で作りたかったので、できればPHPで解決したかったのですが あまり一般的な方法ではないのかもしれませんね…。 offsetを使いつつページ送りさせる方法、引き続き回答を募集しております。 識者の方どうぞよろしくお願い致します。
kudo_a

2018/12/03 01:35

度々ご丁寧にありがとうございます! 実装できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問