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

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

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

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

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

546閲覧

[Wordpress] 投稿記事一覧の表示(グリッド)をボタンで切り替えたい

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/07/03 09:34

編集2018/07/04 09:22

投稿記事一覧の表示(グリッド)をボタンで切り替える方法についてご教授ください。
こんなプラグインがあるよとか、実装方法のアドバイスなどぜひよろしくお願いします。

挑戦した実装は以下に記載しています。

wordpress

WordPress 4.9.6
テーマ:自作

やりたいこと

投稿した記事についてボタン(アイコン)で表示グリッドを
切り替えたいと思っています。

イメージ説明

実装

プラグインはグリッドデザインまではできるけど切り替えまで可能という
情報は見つけられませんでしたので、イベント処理を自作してみました。

・仕様の都合で、グリッド4の場合のclassとグリッド8の場合のclassに対して
CSSが設定されています。
このためイベント処理でclass名を変更し、デザインが切り替わってほしいと考えています。

・記事一覧はwhile文で表示。idは固有になるように設定

・ボタンをクリックしたらイベントを発生させる。

・イベント処理でclass名を変更(各idに対して)

<script> //縦8行表示のイベント処理 jQuery(function(){ jQuery('#grid_eight').click(function() { var check0 = jQuery("#pull_right_info").hasClass('col-xs-12 padding-0 margin-top-20'); if( check0 ) { jQuery("#pull_right_info").removeClass('col-xs-12 padding-0 margin-top-20').addClass('col-xs-12 padding-0'); } var i = 0; //NUMには投稿記事数が入ります。受け渡し方法も模索中です。 for(i=0; i<NUM;i++){ var id_name = "#grid_info" + i; var check = jQuery(id_name).hasClass('col-xs-6 col-sm-3'); if( check ) { jQuery(id_name).removeClass('col-xs-6 col-sm-3').addClass('grid-8'); } } }) }) //4グリッド側のアイコンイベント処理 jQuery(function(){ jQuery('#grid_four').on('click',function(){ var check0 = jQuery("#pull_right_info").hasClass('col-xs-12 padding-0'); if( check0 ) { jQuery("#pull_right_info").removeClass('col-xs-12 padding-0').addClass('col-xs-12 padding-0 margin-top-20'); } var i = 0; //NUMには投稿記事数が入ります。受け渡し方法も模索中です。 for(i=0; i<NUM;i++){ var id_name = "#grid_info" + i; var check = jQuery(id_name).hasClass('grid-8'); if( check ) { jQuery(id_name).removeClass('grid-8').addClass('col-xs-6 col-sm-3'); } } }) }) </script> <?php //投稿記事数を取得 $count_custom = wp_count_posts('product'); $custom_posts = $count_custom->publish; ?> <div id="familyGrid"> <!-- grid選択ボタン --> <div class="pull-right col-xs-12 col-sm-6 hidden-xs margin-top-20"> <p class="grid-button"> <a class="hoge" href="#" id="grid_four" data-postval="<?php echo $custom_posts?>" > <i class="icon-grid_four"></i> </a> <a class="hoge" href="#" id="grid_eight" data-postval="<?php echo $custom_posts?>" > <i class="icon-grid_nine"></i> </a> </p> </div> <div id="pull_right_info" class="col-xs-12 padding-0 margin-top-20"> <!-- 記事一覧表示 --> <?php $clearfix_val = 0; $view_count = 0; if(have_posts()): while(have_posts()): the_post(); if(($clearfix_val % 4 == 0) && ($clearfix_val != 0)){ ?> <div class="clearfix col-xs-12 padding-0" ></div> <?php }; $id_tmp = "grid_info".(string)$view_count ; ?> <div id="<?php echo $id_tmp ?>" class="col-xs-6 col-sm-3"> <button formaction="<?php the_permalink(); ?>" class="pro-div"><img src="xx" /></button> <h4 class="product-text"><?php the_title(); ?></h4> </div> <?php $clearfix_val++; $view_count++; endwhile; endif; ?> </div> </div>

現状

上記の実装でいくつかログを入れて確認したところif文のルートは通っているようです。
→ removeClass/addClassのあとに
console.log( jQuery("#pull_right_info")[0] );
として値を確認したところログで見る値は変化あり。

ただし、実際のブラウザで見える画面は変化がおきない

という状態で、見た目の変化が起きません。


何かお気づきの点がありましたらぜひ教えてください。
情報不足などありましたらご指摘ください。

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

5行目のjQuery(id_name) の id_name はその時点で定義されていない変数です。これでは jQueryオブジェクトを作成できるわけもなく、これが原因ではないでしょうか?

投稿2018/07/03 10:39

takna

総合スコア784

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

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

退会済みユーザー

退会済みユーザー

2018/07/04 09:31

コメントありがとうございます。 また、ご指摘の通りコーディングミスがありました。ありがとうございます。 修正して実行してたところ、通りきってなかった条件式のルートには入って 処理を実行しているようには見えますが、画面の表示が変わりませんでした。。 もう少し待ちつつ考えてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問