質問: get_posts( $postargs ); foreach ( $postslist as $post ) : setup_postdata( $post ); echo get_the_title(); //タイトル endforeach; wp_reset_postdata(); } echo ''; } } wpcf7_add_form_tag("list", "post_list"); ```
回答: ショートコードはreturnでなければキチンと出力できません。 あと、`echo get_the_title(); //タイトル`の部分は`get_the_title($post);`かと思います。 これでどうですか? ``` function post_list(){ $taxonomyName = "product_category"; //親タームだとprentが0なのでこれを指定 $args = array( 'parent' => 0 ); //親を取得 $terms = get_terms($taxonomyName,$args); foreach ($terms as $term) { //親のIDを取得できた $parentId = $term->term_id; /*ここから親タームのIDがそれぞれ取得できるので、そこから子タームのリストを作る*/ //さっきはparentが0だったが、こんかいはprentが親IDの場合の条件 $childargs = array( 'parent' => $parentId, 'hide_empty' => true//投稿がない場合も隠さずにだす ); $childterms = get_terms($taxonomyName,$childargs); $object = ''; $object .= ''; foreach ($childterms as $childterm) { $targetSlug = $childterm->slug; $object .= ''.$childterm->name.'';//子タームの名前 //子ターム情報が取得できたので、ここからget_posts用に準備 $postargs = array( 'post_type' => 'product',//さっきのbrandsタクソノミーを使ってる“投稿”のポストタイプ 'tax_query' => array( array( 'taxonomy' => $taxonomyName, 'field' => 'slug',//フィールドをslugにしておくterm_idとかでも良いはず 'terms' => $targetSlug//上で準備してある$childterm->slug ) ) ); //記事取得 $postslist = get_posts( $postargs ); foreach ( $postslist as $post ) : setup_postdata( $post ); // echo get_the_title(); //タイトル $object .= get_the_title($post); //タイトル endforeach; wp_reset_postdata(); } $object .= ''; } return $object; } wpcf7_add_form_tag("list", "post_list"); ```