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

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

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

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

Q&A

解決済

1回答

6623閲覧

wordpress カスタムフィールドの値ごとの記事数を取得したいです。

mamama_966

総合スコア11

WordPress

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

0グッド

1クリップ

投稿2017/05/22 01:15

編集2017/05/22 04:17

###前提・実現したいこと
wordpress カスタムフィールドの値ごとの記事数を取得したいです。

現在、カスタムフィールドのチェックボックス(複数選択可)で、ある値を選択されている記事数を取得したいと考えております。

検索して出てきた記事を何件かためしてみたものの、知識不足でなかなかうまくいきませんでした。

お忙しいところ恐縮ですが、
やり方や参考になる記事など、ご教示いただければ幸いです。
よろしくお願いいたします。

###試したこと

情報が足りず申し訳ございません。

http://hacknote.jp/archives/11762/

http://newak06.net/blog/?p=1019
上記サイトにありましたソースを使いました。

$args = array( 'post_type' => 'member', 'meta_key' => 'member-cate', //カスタムフィールドのキー 'meta_value' => 'a', //カウント条件 'posts_per_page' => -1 );//投稿タイプ内の全記事を対象 $group_keshin = get_posts( $args ); foreach ( $group_keshin as $post ) { $keshin++; //対象記事の数だけ加算する } echo '参加人数は'. $keshin .'人です。';

度々ご迷惑をおかけし申し訳ございません。。

記載されていたコードをそのまま記載いたしました。
(フィールド名などは変更しました。)
その後、参加人数は人です。 とだけ表示されている状態です。

使用しているプラグインは
advanced custom fields
です。

フィールド名
test

フィールドタイプ
チェックボックス

選択肢
a : a
b : b
c : c

エラーメッセージは下記のようにでております。

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

Notice: Undefined variable: keshin in /user/・・・

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

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

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

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

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

harashow1701

2017/05/22 01:25

試した記事のリンクと、それを試したコードと上手くいかなかった箇所の詳細をまずはどうぞ。
8-0_nyan5

2017/05/22 02:10

示されているコード動くみたいですが、なにかエラーとか表示されているのでしょうか。
kei344

2017/05/22 03:18

「うまくできない」とは「何をしたときに」「どうなると思って」「どうなったのか」を、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。WordPressはデバッグモードにするとエラーが見られます。http://mignonstyle.com/debug-mode/ あと、チェックボックスを作るの使用したプラグインも提示されたほうが良いです。
guest

回答1

0

ベストアンサー

PHP

1$args = array( 2'post_type' => 'member', 3'meta_key' => 'member-cate', 4'meta_value' => 'a', 5'posts_per_page' => -1 6); 7 8$group_keshin = get_posts( $args ); 9 10$keshin = 0; // この行を追加 11 12foreach ( $group_keshin as $post ) { 13 $keshin++; 14} 15echo '参加人数は'. $keshin .'人です。';

エラーの通りの内容ですので、一度エラーメッセージを検索しましょう。

ただ、やるならこっちのほうが記述が少なく、無駄もないと思います。

PHP

1$args = array( 2'post_type' => 'member', 3'meta_key' => 'member-cate', 4'meta_value' => 'a', 5'posts_per_page' => -1 6); 7$query = new WP_Query( $args ); 8 9echo $query->found_posts;

投稿2017/05/22 04:45

編集2017/05/22 04:46
rok6

総合スコア241

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

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

mamama_966

2017/05/22 05:35 編集

ご回答ありがとうございます。 こちら、セレクトボックスでは機能するのですが、チェックボックスや、セレクトボックスの複数選択では0と表示されてしまいます。 お忙しいところ申し訳ございませんが、よい方法などあれば教えていただけるとありがたいです。 よろしくお願いいたします。
rok6

2017/05/22 05:41

チェックボックス(セレクトボックスでもマルチにすればそうですが)だと 取得できる値が配列となります。 なので、meta_key, meta_value の代わりに meta_query を使います。 参考: http://yahss.net/wordpress/1226-array_in_custom_fields/
mamama_966

2017/05/22 05:54

おかげさまで無事表示されました。 本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問