カスタム分類法(fabric_building_types
)で投稿を取得していません。私はcat_id
とcat->name
も取得していますが、投稿を取得できません。
$args = array(
'type' => 'post',
'child_of' => 0,
'parent' => '',
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => 1,
'hierarchical' => 1,
'exclude' => '',
'include' => '',
'number' => '',
'taxonomy' => 'fabric_building_types',
'pad_counts' => false
);
$categories = get_categories( $args );
foreach ( $categories as $cat ) {
// here's my code for getting the posts for custom post type
$posts_array = get_posts(
array(
'showposts' => -1,
'post_type' => 'fabric_building',
'tax_query' => array(
array(
'taxonomy' => 'fabric_building_types',
'field' => $cat->cat_ID,
'terms' => $cat->name,
)
)
)
);
print_r( $posts_array );
}
誰かが私を手伝ってくれますか。
納税申告が間違っています、field
はあなたが照会したい分野であるべきです:term_id
、name
、またはslug
-
$posts_array = get_posts(
array(
'posts_per_page' => -1,
'post_type' => 'fabric_building',
'tax_query' => array(
array(
'taxonomy' => 'fabric_building_types',
'field' => 'term_id',
'terms' => $cat->term_id,
)
)
)
);
可能であれば、分類法にget_terms()
を使うべきです。
<?php
/* Add your taxonomy. */
$taxonomies = array(
'fabric_building_types',
);
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => true,
'exclude' => array(),
'exclude_tree' => array(),
'include' => array(),
'number' => '',
'fields' => 'all',
'slug' => '',
'parent' => '',
'hierarchical' => true,
'child_of' => 0,
'get' => '',
'name__like' => '',
'description__like' => '',
'pad_counts' => false,
'offset' => '',
'search' => '',
'cache_domain' => 'core'
);
$terms = get_terms( $taxonomies, $args );
foreach ( $terms as $term ) {
// here's my code for getting the posts for custom post type
$posts_array = get_posts(
array( 'showposts' => -1,
'post_type' => 'fabric_building',
'tax_query' => array(
array(
'taxonomy' => 'fabric_building_types',
'field' => term_id,
'terms' => $term->name,
)
)
)
);
print_r( $posts_array );
}
?>
Codexへのリンク : http://codex.wordpress.org/Function_Reference/get_terms
global $post; $id = $post->ID;
$cat = get_the_category($id);
$loc = get_the_terms($id, 'taxonomy');
$posts = get_posts(
array('post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'category' => $cat[0]->term_id,
'tax_query' => array(
array(
'taxonomy' => 'location',
'field' => 'id',
'terms' => $loc[0]->term_id,
)
)
)
);
print_r($posts);
これはうまくいくはずです。
現在の分類法に割り当てられた投稿を取得する
Taxonomy-your_tax.phpに以下のコードを追加することができます。
<div class="a-article-wrapper">
<?php
$terms = wp_get_post_terms( $post->ID, 'your-taxonomy');
$terms_ids = [];
foreach ( $terms as $term ) {
$terms_ids[] = $term->term_id;
}
$args = array(
'post_type' => 'your-post-type',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'your-taxonomy',
'field' => 'term_id',
'terms' => $terms_ids
)
),
);
$query = new WP_Query($args);
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
?>
<div class="row">
<div class="col-md-8 a-article-row">
<div class="row">
<?php $query->the_post();?>
<div class="a-post-time">
<span class="a-current-date"><?php the_time('j F, D') ?></span>
<span class="a-current-time"><?php the_time('g:i a') ?></span>
</div>
<div class="a-article-title">
<?php the_title(); ?>
</div>
<div class="a-article-content">
<div id="excerpt"><?php the_excerpt(); ?></div>
<?php the_content(); ?>
</div>
<div class="a-article-tags">
<?php echo get_the_term_list( get_the_ID(), 'your-taxonomy', '', ',' ); ?>
</div>
</div>
</div>
</div>
<?php } } ?>
</div>