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

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

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

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

PHP

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

0回答

2408閲覧

Advanced Custom Fieldsでカテゴリーに設定したチェックボックスで記事を抽出したい。

d-xanthus

総合スコア56

WordPress

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

PHP

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

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2015/07/29 12:24

お世話になります。
数十人の方にコラムを書いていただくサイトの運用に関わっていまして、
コラムニストをワードプレスのカテゴリーとして設定しています。

そのコラムニスト一覧(WPカテゴリーの一覧)を表示するページにて
こちらのフォーラム( yukki様コードより)を参考に、
最新記事を投稿されたコラムニストの方が上位に来るようにしているのですが、
コラムニストの人数が増えてきましたので、さらにコラムニストを経営関連や飲食店関連などの分類分けを行いたいということになりました。
複数の分類に所属できるコラムニストもいらっしゃいますので、一つの親しか設定できないカテゴリーによる分類ではなく、Advanced Custom Fields(アドバンスカスタムフィールド)でコラムニスト(WPカテゴリー)にチェックボックスを設定し、そちらを元にループを抽出をしたいと考えています。(但し、チェックボックスによるループの抽出は1種類だけです。)

こちらのフォーラムや、こちらのページを参考に、こちらのコードでテストしてみたのですがうまく動かないです。


【Advanced Custom Fields 設定内容 】

フィールド名 : specialty_field
フィールドタイプ: チェックボックス
選択肢: strategy : 営業・販売戦略
brand : 新事業・ブランド
system : 内部体制・システム
manufacturer : メーカー・加工業
service : 飲食小売・サービス
president : 社長・お金・その他

<?php $cat_id = get_queried_object()->cat_ID;//アーカイブページの場合 $post_id = 'category_'.$cat_id; $specialtyfield = get_field('specialty_field',$post_id); //コンサルティングカテゴリー ?> <?php $catList = get_categories('exclude=1,6,8,48'); foreach ($catList as $val) { $id = $val->cat_ID; $post_id = 'category_'.$id; $specialtyfield = get_field('specialty_field',$post_id); //コンサルティングカテゴリー $resPost = get_posts(array( 'category' => $id, 'orderby' => 'post_date', 'posts_per_page' => 1, // ↓ 以下:追加分 'meta_query' => array( array( 'key' => $specialtyfield, 'value' => '"strategy"', 'compare' => 'LIKE' ) ) //追加分ここまで )); foreach ($resPost as $post) { $resArr []= $post; } } foreach($resArr as $key => $row){ $post_date[$key] = $row->post_date; } array_multisort($resArr,SORT_DESC,$post_date); foreach($resArr as $post): setup_postdata($post); //以下ループ内容?> <div> <?php $cats = get_the_category(); //シングルの場合 $cat_id = $cats[0]->term_id; //シングルの場合 $post_id = 'category_'.$cat_id; $specialtyfield = get_field('specialty_field',$post_id); //コンサルティングカテゴリー ;?> <a href="<?php the_permalink(); ?>"><?php the_title(); // ?> | <?php the_category( '/'); ?></a> <?php if ( $specialtyfield ): ?> <ul><li><?php echo implode('</li><li>', $specialtyfield); ?></li></ul> <?php endif; ;?> </div> <?php //ループ内容ここまで endforeach; ?>

phpを理解して作成しているわけではないので、間違いも多数あるかと思いますが、
皆様のお知恵をお貸しいただければありがたいです。
何卒よろしくお願いいたします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問