2016-04-28 8 views
0

非常に簡単なWordpressカスタムタクソノミーのアーカイブテンプレートを使用するにはどうしたらいいですか?Wordpressの投稿でアルファベット順にタクソノミの子用語のリストを取得するには

すべての情報を取得していますが、投稿はアルファベット順に表示されますが、という用語はIDの順番でアルファベット順に表示されます

私はこの方法を間違っており、現在this postのコードを使用しています。私は運がないネットの周りからたくさんのソリューションを試しました。私はthis post has a solutionを見ていますが、以下のコードでそれを実装する方法はわかりません。

おそらく、私が必要なことをするのは簡単な方法でしょうか?

クエリでは、現在の親用語、次に子用語、および子用語の投稿を取得する必要があります。以下のコードは私のtaxonomy-business-categories-(親用語).phpにあります。例えば、私のtaxonomy-business-categories-bars.phpです。自分の投稿でグループ化された子用語を出力する必要があります。すべてがアルファベット順でなければなりません。

<?php 
$term_slug = get_query_var('term'); 
$taxonomyName = get_query_var('taxonomy'); 
$current_term = get_term_by('slug', $term_slug, $taxonomyName); 
$termchildren = get_term_children($current_term->term_id, $taxonomyName); 
foreach ($termchildren as $child) { 
$term = get_term_by('id', $child, $taxonomyName); 
    $wpq = array (
    'taxonomy'=>$taxonomyName, 
    'term'=>$term->slug, 
    'order'=>'asc', 
    'orderby'=>'title'); 
    $query = new WP_Query ($wpq); 
    echo "$term->name:<br />"; 
    ?> 

    <?php 
    if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?> 
    <a href="<?php the_permalink();?>"><?php the_title();?></a>, 
    <?php endwhile; endif; wp_reset_query(); ?> 
    <?php 
    echo "<br />"; 
} 
?> 

ここにはtaxonomy templateへのリンクが.txtです。ファイル。

UPDATE:私は親用語で分類テンプレートをハードコーディングしていますように、私は上記の私のコードでこのようなものを使用することができます

<?php 
$term_id = 32; 
$taxonomy_name = 'business-categories'; 
$termchildren = get_term_children($term_id, $taxonomy_name); 
$children = array(); 
foreach ($termchildren as $child) { 
$term = get_term_by('id', $child, $taxonomy_name); 
$children[$term->name] = $term; 
} 
ksort($children); 

答えて

0

があなたの上記のコードで、このコードを置き換え

<?php 
$term_slug = get_query_var('term'); 
$taxonomyName = get_query_var('taxonomy'); 
$current_term = get_term_by('slug', $term_slug, $taxonomyName); 
$termchildren = get_term_children($current_term->term_id, $taxonomyName); 
foreach ($termchildren as $child) { 
$term = get_term_by('name', $child, $taxonomyName); 
$wpq = array (
'taxonomy'=>$taxonomyName, 
'term'=>$term->slug, 
'order'=>'asc', 
'orderby'=>'title'); 
$query = new WP_Query ($wpq); 
echo "$term->name:<br />"; 
?> 
<?php 
if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?> 
<a href="<?php the_permalink();?>"><?php the_title();?></a>, 
<?php endwhile; endif; wp_reset_query(); ?> 
<?php 
echo "<br />"; 
} 
?> 

それがあなたのために働くかどうか私に教えてください...

+0

こんにちは、それは私の場合は動作しませんでした。その結果、子用語は表示されず、すべての投稿が親の子用語のものだけでなく表示されます。 –

+0

上記のコードをあなたのコードの希望と置き換えてください。 – laraib

+0

いいえ、申し訳ありませんが動作しません。私は子どもの言葉がなく、言葉に関係なく、すべての投稿のリストを取得します。ksortは1つの子供の言葉を持ち上げ、それはAで始まったので、アルファベット順に出てきましたが、他の言葉や投稿は表示されませんでした。他のアイデア?私は私の質問に完全なタクソノミテンプレートコードへのリンクを追加しました。 –

0

私の場合の解決策は、プラグインのカスタムタクソノミ注文NEと(プラグインの作者によって指示されるように)アジャストをインストールすることでした次のようにクエリをSTED:

はこの置き換えます)この

$termchildren = get_terms(array(
'taxonomy' => $taxonomyName, 
'child_of' => $current_term->term_id, 

$termchildren = get_term_children($current_term->term_id, $taxonomyName); 
foreach ($termchildren as $child) { 
$term = get_term_by('id', $child, $taxonomyName); 
$wpq = array (

を)。

foreach ($termchildren as $term) { 
$wpq = array (
関連する問題