Simplicityの特徴 › フォーラム › Simplicityについての質問 › topとそれ以外の記事の投稿数を変更
- このトピックには8件の返信、1人の参加者があり、最後に
ゆうにより10年前に更新されました。
-
投稿者投稿
-
-
2016年9月13日 3:23 AM #45107
ゆう
ゲストこんにちわ
お忙しいところすいませんが、ちょっとお聞きしたいことがあります。
topページとそれ以外のページの記事の投稿数を変更することってできるのでしょうか??
例えばtopページのみ投稿数10件、カテゴリーとアーカイブは投稿数20件という感じになんですが。
ちょっとイマイチわからなかったので、よろしくお願いします。
-
2016年9月13日 1:39 PM #45112
hidekichi
ゲストfunction set_posts_per_page_mobile( $query ) { return; } function change_home_posts_per_page( $query ) { // 管理画面、またはメインのループでない場合中断 if ( is_admin() || ! $query->is_main_query() ) { return; } if ( $query->is_home() || $query->is_mobile() && $query->is_home()) { $query->set( 'posts_per_page', 5 ); return; } if ( $query->is_archive() ) { $query->set( 'posts_per_page', 10); return; } } add_action( 'pre_get_posts', 'change_home_posts_per_page' );うちのテスト環境では記事数が足りないので十分にテストできてませんが、こんな感じで条件を変えていけば任意の数にできるのではなかろうかと思います。子テーマfunctions.phpに書いて、
参考: 条件分岐タグ | codex
等で、調べつつ条件を色々試してみてください。
但し、functions.phpに追記していくので、記入ミス(;抜け、タイプミス)等があると画面真っ白になる可能性があります。ftpでバックアップを取りながらすぐに元に戻せるような体制でカスタマイズされるのをオススメします。 -
2016年9月13日 1:52 PM #45114
hidekichi
ゲストif ( $query->is_home() || $query->is_mobile() && $query->is_home()) {上記は、mobileにしてもpcにしてもis_homeは同じなので以下で良いかと思います。
if ( $query->is_home() ) { $query->set( 'posts_per_page', 5 ); return; }mobileの時に何かしたい場合はまたそれで設定すればよいかと。
-
2016年9月13日 4:17 PM #45124
ゆう
ゲストいつも詳しくありがとうございます(^-^)
スマホの方の分岐タグも併せて記述してみたんですが、
これで間違ってないでしょうか??function set_posts_per_page_mobile( $query ) {
return;
}
function change_home_posts_per_page( $query ) {
// 管理画面、またはメインのループでない場合中断
if ( is_admin() || ! $query->is_main_query() ) {
return;
}if ( is_mobile()) {
if ( $query->is_home() ) {
$query->set( ‘posts_per_page’, 6 );
return;
}if ( $query->is_archive() ) {
$query->set( ‘posts_per_page’, 10);
return;
}} else {
if ( $query->is_home() ) {
$query->set( ‘posts_per_page’, 12 );
return;
}if ( $query->is_archive() ) {
$query->set( ‘posts_per_page’, 15);
return;
}
}}
add_action( ‘pre_get_posts’, ‘change_home_posts_per_page’ ); -
2016年9月13日 4:19 PM #45125
ゆう
ゲストあれ、コード入力するときってどうすればいいんですかね??
code押すとエラーになってしまうのですが(^^;) -
2016年9月13日 4:21 PM #45127
ゆう
ゲストfunction set_posts_per_page_mobile( $query ) { return; } function change_home_posts_per_page( $query ) { // 管理画面、またはメインのループでない場合中断 if ( is_admin() || ! $query->is_main_query() ) { return; } if ( is_mobile()) { if ( $query->is_home() ) { $query->set( 'posts_per_page', 6 ); return; } if ( $query->is_archive() ) { $query->set( 'posts_per_page', 10); return; } } else { if ( $query->is_home() ) { $query->set( 'posts_per_page', 12 ); return; } if ( $query->is_archive() ) { $query->set( 'posts_per_page', 15); return; } } } add_action( 'pre_get_posts', 'change_home_posts_per_page' ); -
2016年9月13日 4:22 PM #45128
ゆう
ゲスト何度もすいません。貼れました(^-^)
-
2016年9月13日 4:33 PM #45129
hidekichi
ゲスト> コード入力するときってどうすればいいんですかね?
通常のwordpressの編集画面と同様に範囲選択してcodeボタンを押すだけです。
function change_home_posts_per_page( $query ) { // 管理画面、またはメインのループでない場合中断 if ( is_admin() || ! $query->is_main_query() ) { return; } if ( is_mobile()) { if ( $query->is_home() ) { $query->set( 'posts_per_page', 6 ); return; } if ( $query->is_archive() ) { $query->set( 'posts_per_page', 10); return; } } else { if ( $query->is_home() ) { $query->set( 'posts_per_page', 12 ); return; } if ( $query->is_archive() ) { $query->set( 'posts_per_page', 15); return; } } } add_action( 'pre_get_posts', 'change_home_posts_per_page' );エラーは無いようですし、これで試してみて表示に問題なければイケるんじゃないでしょうか?
前にも書いたように、うちのテスト環境では投稿数が少ないので、ケースごとの数を確認できませんが、多分動作していると思います。mobileとPcでは確認できました。アーカイブもイケてるっぽいです。これらを元に、条件分岐次第で数は色々とできると思うので試し試しやって見る感じかと思います。
ただ、以前ランダムに表示するサンプルを作った時に、リストアイテムの合計数が少しおかしい時がありました。これらはwordpressの問題かと思うので、ひとまず保留なんですが、利用される環境によって(トップを固定とか、ランダム表示とかその他諸々)で、若干ページャーがおかしくなるかもしれません。
すでにあれからアップデートも2回ぐらいあったと思うので直っているかもしれないんですけどね。 -
2016年9月13日 5:02 PM #45130
ゆう
ゲスト了解です(^-^)
ありがとうございました(^^♪
-
-
投稿者投稿
- フォーラム「Simplicityについての質問」には新規投稿および返信を追加できません。