2016-06-24 14 views
0

私の書式設定が間違っているところで働く助けが必要です。category_nameの配列で2つの変数を使用するWordpressループ

ページテンプレートの先頭にこのコードがあります。

<?php $term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy')); 
      $parent = get_term($term->parent, get_query_var('taxonomy'));?> 

       <?php echo do_shortcode("[ecs-list-events message='' cat='{$term->slug}']"); ?> 
       <?php echo do_shortcode("[ecs-list-events message='' cat='{$parent->slug}']"); ?> 

イムは今のようにあるべきなループですべてがあるイムはかなり確信して、現在のループでは、これらの変数「$ TERM->スラッグ」と「$ parent->スラグ」を使用しようとしています最初の変数は機能しますが、2番目の変数は無視されます。

<?php 

// WP_Query arguments 
$args = array (
    'category_name' => array ("$parent->slug", "$term->slug"), 
); 

// The Query 
$welcome_text = new WP_Query($args); 

// The Loop 
if ($welcome_text->have_posts()) { 
    while ($welcome_text->have_posts()) { 
     $welcome_text->the_post(); 

     the_content(); 
    } 
} else { 
    // no posts found 
} 

// Restore original Post Data 
wp_reset_postdata(); 


?> 

私が両方のgettheを使用してフォーマットしようとすると、次のようなエラーが表示されます。

Warning: urlencode() expects parameter 1 to be string, array given in /var/sites/s/silverfx.co.uk/public_html/wp-includes/formatting.php 

どこが間違っているのですか?

おかげ

最初の変数ではなく第二、それは準備ができてない理由[EDIT]

私はちょうど私が質問を推測するように、カテゴリ名は文字列のみを受け入れることを発見したが、今ですか?

どのような順序で並べ替えても問題ありません。最初のものは常に動作し、2番目のものは無視されます。

現在の書式設定は、

'category_name' => $parent->slug, $term->slug); 

答えて

1

それだけ,または+で区切られた文字列を受け付けます。

あなたの引数は次のようになります。

$cats = []; 
$cats[] = $parent->slug; 
$cats[] = $term->slug; 

'category_name' => implode(",", $cats)); 

それとも

'category_name' => $parent->slug. '+'. $term->slug); 

あなたはそれhereについての詳細を読むことができます。

+0

こんにちは@Ervaldお早めにご返信いただきありがとうございます!私はあなたの最初の提案を使用して、それは完全に働いた:) –

関連する問題