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

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

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

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

PHP

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

Q&A

解決済

1回答

4038閲覧

カスタム投稿でタクソノミーごとの一覧作成と絞込み

sin1983

総合スコア10

WordPress

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

PHP

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

0グッド

0クリップ

投稿2016/01/18 07:40

編集2016/01/18 07:59

お世話になります
###前提・実現したいこと
WordPressで事業所一覧というカスタム投稿タイプをつくり、「サービス」と「地域」というタクソノミーを作成しています。
「サービス」ごとに所属しているカスタム投稿タイプの一覧を表示しつつ、「地域」をクリックした時には、該当の地域の「サービス」の一覧のみが表示されるように絞り込みたいです。

↓現状、参考にしているのが下記のページです(まさしくこの通りのことがしたい)
http://naoyu.net/wordpress/tax_query/583/

###発生している問題・エラーメッセージ
参考ページの通りにコードを書くと、全く何も表示されません。
出力されているページのソースを見ると、何も吐き出されていないようです。

質問点としては2点です。
①タクソノミーのスラッグに「アンダーバー」を使ってはいけない、等のルールは有りますか?
②上記の参考サイトのコードは正しいものでしょうか?

###ソースコード

php

1<?php 2/* Template Name: office */ 3get_header(); ?> 4 5<div class="clearfix"> 6 <div id="main"> 7 <div class="page_title_blue">事業所一覧</div> 8 <div class="content_box_blue"> 9 <?php 10 $args = array( 11 'parent' => 0, 12 'hierarchical' => 0, 13 'orderby' => 'term_order', 14 'order' => 'ASC' 15 ); 16 $taxonomy_name = 'office-service'; 17 $taxonomys = get_terms($taxonomy_name,$args); 18 if(!is_wp_error($taxonomys) && count($taxonomys)): 19 foreach($taxonomys as $taxonomy): 20 $url = get_term_link($taxonomy->slug, $taxonomy_name); 21 $tax_posts = get_posts(array( 22 'post_type' => get_post_type(), 23 'posts_per_page' => 5, 24 'tax_query' => array( 25 array( 26 'taxonomy'=>'office-service', 27 'terms'=>array( $taxonomy->slug ), 28 'field'=>'slug', 29 'include_children'=>true, 30 'operator'=>'IN' 31 ), 32 'relation' => 'AND' 33 ) 34 )); 35 if($tax_posts): 36 ?> 37 <h2 id="<?php echo esc_html($taxonomy->slug); ?>" class=""><a href="<?php echo $url; ?>"><?php echo esc_html($taxonomy->name); ?></a></h2> 38 <ul> 39 <?php foreach($tax_posts as $tax_post): ?> 40 <li> 41 <span class="thumb"> 42 <a href="<?php echo get_permalink($tax_post->ID); ?>"> 43 <?php if(has_post_thumbnail($tax_post->ID)) { 44 echo get_the_post_thumbnail($tax_post->ID,'post-thumbnail'); 45 } ?> 46 </a> 47 </span> 48 <span class="title"><?php echo get_the_title($tax_post->ID); ?></span> 49 </li> 50 <?php endforeach; ?> 51 </ul> 52 <?php 53 endif; 54 endforeach; 55 endif; 56 ?> 57 </div> 58 </div><!-- /main --> 59 60 <div id="sidebar"> 61 <?php get_sidebar(); ?> 62 </div><!-- /sidebar --> 63 64 <?php get_footer(); ?>

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

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

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

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

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

ikuwow

2016/01/18 07:45

ソースが見づらいので、Markdown記法でシンタックスハイライトしていただけますでしょうか。
sin1983

2016/01/18 08:03

コメントありがとうございます。一応、マークダウンのタグをつけてみましたが、シンスタックハイライト、というもののやり方がわかりません。大変申し訳ございません。(teratail を今回初めて利用させていただくもので…)
guest

回答1

0

自己解決

ちょっとコードが違いますが、自己解決しました。
絞込みについては引き続き調査中です。

php

1<?php 2 $catargs = array( 3 'taxonomy' => 'office_service', 4 ); 5 $catlists = get_categories( $catargs ); 6 foreach($catlists as $cat) : // 取得したカテゴリの配列でループを回す 7 ?> 8 <section> 9 <div class="content_title_red"><h2><?php echo $cat->name; ?></h2></div> 10 <div class="content_txt"> 11 <div class="office_card clearfix"> 12 <ul> 13 <?php 14 $args = array( 15 'post_type' => 'office', 16 'order' => 'ASC', 17 'showposts' => 30, 18 'office_service' => $cat->slug 19 ); 20 $my_posts = get_posts( $args ); 21 if ( $my_posts ) { // 該当する投稿があったら 22 foreach ( $my_posts as $post ) : 23 setup_postdata( $post ); 24 ?> 25 <li> 26 <div class="office_title"><?php the_title(); ?></div> 27 <div class="office_tel">TEL:<a href="tel:<?php echo post_custom('office-tel'); ?>"><?php echo post_custom('office-tel'); ?></a></div> 28 <div class="office_fax">FAX:<?php echo post_custom('office-fax'); ?></div> 29 <div class="office_address"><?php echo nl2br(post_custom('officeaddress')); ?></div> 30 <div> 31 <?php if(has_post_thumbnail($tax_post->ID)) { 32 echo get_the_post_thumbnail($tax_post->ID,'post-thumbnail'); 33 } ?> 34 </div> 35 </li> 36 <?php 37 endforeach; 38 } else { 39 echo 'このカテゴリに投稿はありません'; 40 } 41 wp_reset_postdata(); 42 ?> 43 </ul> 44 </div> 45 </div> 46 </section> 47 <?php endforeach; ?>

投稿2016/01/18 13:58

編集2016/01/18 14:01
sin1983

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問