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

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

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

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

PHP

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

5517閲覧

もっと見るボタンの設置(ワードプレスのループを使用時)

upplus

総合スコア11

WordPress

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

PHP

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

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/09/06 06:09

編集2016/09/06 13:09

###前提・実現したいこと
初期表示→ワードプレスのループを使って.boxed-whiteを6BOX表示
もっと見るボタン押す→3BOXずつ表示したい

□ □ □
□ □ □
もっと見る

□ □ □
□ □ □
□ □ □
もっと見る

###発生している問題・エラーメッセージ

投稿ボックスが全部出た状態になっています。

###該当のソースコード

<script> jQuery( '.show_box:gt(2)' ).addClass( 'show_box_hide' ).hide(); jQuery( '.more' ).on( 'click', function() { jQuery( '.show_box_hide:lt(3)').removeClass( 'show_box_hide' ).slideDown( 'fast' ); if ( jQuery( '.show_box.show_box_hide' ).length === 0 ) { jQuery( '.more' ).hide(); } } ); */jQuery(function(){ jQuery('.show_box:not(.show_box:first-of-type)').css('display','none'); jQuery('.more').nextAll('.more').css('display','none'); jQuery('.more').on('click', function() { jQuery(this).css('display','none'); jQuery(this).next('.show_box').slideDown('fast'); jQuery(this).nextAll('.more:first').css('display','block'); }); });*/ </script> <style> #visual_event{ width: 100%; height: 100%; background: url(images/bg-white-brick.jpg) repeat; } #visual_event .boxed-white { widht: 100%; background: #fff; padding: 15px; margin-bottom: 30px; } #visual_event h5 a{ text-decoration: none; font-size: 17px; line-height: 1.7; margin-top: 8px; font-weight: bold; } #visual_event h5 a{ color: #888; margin: 15px 0 !important; } #visual_event i{ position: relative; right: 3px; top: 3px; } #visual_event .event-more-box a{ font-size: 13px; color: #fff; font-weight: bold; height: 50px; line-height: 50px; background: #999; text-decoration: none; display: block; margin-bottom: -10px; } #visual_event .event-more-box a:hover{ color: #999; background: #fff; border: 1px solid #999; -webkit-transition: .3s; -moz-transition: .3s; -ms-transition: .3s; -o-transition: .3s; transition: .3s; } #visual_event .visual-img img{ width: auto; height: auto; max-width: 100%; max-height: 100%; } #visual_event .box-more{ cursor: pointer; font-size: 18px; color: #909090; font-weight: bold; padding: 10px 0; background: -moz-linear-gradient(top,#FFF 0%,#EEE); background: -webkit-gradient(linear, left top, left bottom, from(#FFF), to(#EEE)); border: 1px solid #aaa; } </style> <!-- visual_event --> <section id="visual_event" class="top_bottom_margin bg-gray"> <div class="visual_margin container"> <div class="row"> <?php $my_query = new WP_Query( 'category_name=event' ); ?> <?php if ( $my_query->have_posts() ) :while ( $my_query->have_posts() ) : $my_query->the_post(); ?> <!-- show_box --> <div class="show_box"> <!-- boxed-white --> <div class="col-xs-12 col-md-4"> <div class="boxed-white"> <p class="visual-img"> <?php if(has_post_thumbnail()) { echo the_post_thumbnail( 'list-thumbnail' ); } ?> </p> <h5 class="text-center"><a href="<?php the_permalink(); ?>"> <?php if(mb_strlen($post->post_title, 'UTF-8')>16){ $title= mb_substr($post->post_title, 0, 16, 'UTF-8'); echo $title.'…'; }else{ echo $post->post_title; } ?> </a></h5> <hr class="boxed-grey-diagonal"> <?php the_excerpt(); ?> <p class="event-more-box text-center"><a href="<?php the_permalink(); ?>"> <i class="fa fa-angle-double-right fa-2x"></i> READ MORE | 詳細を見る</a></p> </div> </div> <!-- boxed-white --> </div> <!-- show_box --> <?php endwhile; /* ボタンをループから外す */ ?> <!-- もっと見る --> <div class="more"> <div class="col-md-12"> <p class="box-more text-center">もっと見る</p> </div> </div> <!-- もっと見る --> <?php else: ?> <p>記事はありません</p> <?php endif; ?> </div> </div> </section> <!-- visual_event ********************************************************************↑-->

###試したこと
ご親切に教えていただいたものを参考にさせていただき、
格闘中です。。。

###補足情報(言語/FW/ツール等のバージョンなど)
ワードプレスを仕様 HTML5 bootstrap

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

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

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

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

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

kei344

2016/09/06 06:28

「#show_box」「#boxed-white」は「.show_box」「.boxed-white」です。「#」は「id="a"」など id属性で設定したものに使います。
upplus

2016/09/06 06:31

ご指摘ありがとうございます。
guest

回答2

0

ベストアンサー

こんな感じとかですか。レイアウトにBootstrapを使っていいんですよね?

訂正(2016/09/06 22:24)
投稿の全件数が3の倍数じゃないときに、div.show_boxが閉じられないバグを修正。
直したので、一応載せときます。(新しいjQueryだと動かないと思うので、この回答修正は無視してくださいな)

Javascript

1<script> 2jQuery(function(){ 3 jQuery('.show_box:not(.show_box:first-of-type)').css('display','none'); 4 jQuery('.more').nextAll('.more').css('display','none'); 5 jQuery('.more').on('click', function() { 6 jQuery(this).css('display','none'); 7 jQuery(this).next('.show_box').slideDown('fast'); 8 jQuery(this).nextAll('.more:first').css('display','block'); 9}); 10}); 11</script>

PHP

1<?php $counter = 0; ?> 2<?php $column = 3; ?> 3 4<?php $my_query = new WP_Query( 'category_name=event' ); ?> 5<?php if ( $my_query->have_posts() ) :while ( $my_query->have_posts() ) : $my_query->the_post(); ?> 6 7<?php if( $counter % $column == 0 ) : ?> 8 <!-- show_box --> 9 <div class="show_box row"> 10<?php endif; ?> 11 12<!-- boxed-white --> 13 <div class="col-xs-12 col-md-4"> 14 <div class="boxed-white"> 15 <p class="visual-img"> 16 <?php if(has_post_thumbnail()) { echo the_post_thumbnail( 'list-thumbnail' ); } ?> 17 </p> 18 <h5 class="text-center"><a href="<?php the_permalink(); ?>"> 19 <?php if(mb_strlen($post->post_title, 'UTF-8')>16){ 20 $title= mb_substr($post->post_title, 0, 16, 'UTF-8'); 21 echo $title.'…'; 22 }else{ 23 echo $post->post_title; 24 } 25 ?> 26 </a></h5> 27 <hr class="boxed-grey-diagonal"> 28 <?php the_excerpt(); ?> 29 <p class="event-more-box text-center"><a href="<?php the_permalink(); ?>"> 30 <i class="fa fa-angle-double-right fa-2x"></i> READ MORE | 詳細を見る</a></p> 31 </div> 32 </div> 33<!-- /boxed-white --> 34 35<?php if( ($counter % $column == $column-1) || ($counter == ($my_query->post_count)-1) ) : ?> 36 </div> 37 <!-- /show_box --> 38<?php endif; ?> 39 40<?php if( ($counter % $column == $column-1) && ($counter != ($my_query->post_count)-1) ) : ?> 41 <!-- もっと見るボタン --> 42 <div class="more"> 43 <div class="col-md-12"> 44 <p class="box-more text-center">もっと見る</p> 45 </div> 46 </div> 47 <!-- /もっと見るボタン --> 48<?php endif; ?> 49 50<?php $counter++; ?> 51 52<?php endwhile; else: ?> 53<p>記事はありません</p> 54<?php endif; ?>

投稿2016/09/06 07:12

編集2016/09/06 13:35
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2016/09/06 08:52

あっ、これだと、投稿の全件数が3の倍数じゃないときに、div.show_boxが閉じられないという問題がありますね。
upplus

2016/09/06 12:38

はい、Bootstrapを使っています。 ご丁寧にご説明ありがとうございます。 いろいろ参考にさせていただきたいと思います。
退会済みユーザー

退会済みユーザー

2016/09/06 13:38

万が一誰かが参考にしたときのために、「投稿の全件数が3の倍数じゃないときに、div.show_boxが閉じられない」問題を修正したコードを一応を置いておきます。
upplus

2016/09/06 15:53

正常にちゃんと動いてました! すごいですね。感動しました。。。 むつかしい難解の回答をありがとうございました。
guest

0

こんな感じでしょうか。
**追記:**テストしました。さっきのは動かない・・・ ので修正してサンプルで動作を確認出来ます。

JavaScript

1jQuery( '.show_box:gt(2)' ).addClass( 'show_box_hide' ).hide(); 2jQuery( '.more' ).on( 'click', function() { 3 jQuery( '.show_box_hide:lt(3)').removeClass( 'show_box_hide' ).slideDown( 'fast' ); 4 if ( jQuery( '.show_box.show_box_hide' ).length === 0 ) { jQuery( '.more' ).hide(); } 5} );

PHP

1<?php endwhile; /* ボタンをループから外す */ ?> 2 3<!-- もっと見るボタン --> 4<div class="more"> 5<div class="col-md-12"> 6<p class="box-more text-center">もっと見る</p> 7</div> 8</div> 9<!-- /もっと見るボタン --> 10 11<?php else: ?> 12<p>記事はありません</p> 13<?php endif; ?> 14```**動くサンプル:**[https://jsfiddle.net/a1v5ey6p/](https://jsfiddle.net/a1v5ey6p/) 15 16--- 17 18【jQueryでa番目からb番目まで範囲指定セレクタ - Web学び】 19[http://fukuyama.co/ltgt](http://fukuyama.co/ltgt)

投稿2016/09/06 07:00

編集2016/09/06 07:45
kei344

総合スコア69400

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

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

upplus

2016/09/06 12:42

ご回答ありがとうございます。 ぼくのコーディングがどこかがおかしいのか、 投稿が全部出た状態になり、もっと見るボタンを押しても動作しないみたいです。 こちらを元にして考えさせていただきたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問