-2

所有しているカテゴリの数に基づいて URL を作成しようとしています。私が望む期待される出力は次のとおりです。

<a href="http://lart.co.uk/?cat=13" title="Category Name">Dance</a>
<a href="http://lart.co.uk/?cat=19" title="Category Name">Fashion</a>

私が得ている出力は次のとおりです。

<a href="http://lart.co.uk/?cat=13" title="Category Name">
<a href="http://lart.co.uk/?cat=19" title="Category Name">
Dance</a> Fashion</a> </a> 

それはほとんど私が望んでいるものですが、明らかに私はまだかなり離れています. この結果を得るために、3 つの foreach ステートメントを使用しています。foreach をネストしようとしましたが、うまくいきませんでした。問題は、ある foreach から別の foreach に渡す結果を取得することです。

私が使用しているコードは次のとおりです。

<?php
      $categories = get_the_category();
      $separator = ', ';
      if($categories) {
        foreach($categories as $category) {
          $output .= $category->cat_name.$separator;
          $cat_id[] = $category->cat_ID;
        } 
         foreach($cat_id as $id) {
          $category_link = get_category_link( $id ); ?>
          <a href="<?php echo esc_url( $category_link ); ?>" title="Category Name">
          <?php }       
        $strarr = explode(',',$output);
        foreach($strarr as $string) { 
         echo $string .'</a>';
         }

       } ?> 
4

3 に答える 3

4

次のようなもっと単純なもので十分です。

$categories = get_the_category();
foreach ($categories as $category) {
    printf('<a href="%s" title="Category Name">%s</a>',
           htmlspecialchars(get_category_link($category->cat_ID)),
           htmlspecialchars($category->cat_name));
} 

カテゴリをループして、カテゴリごとに 1 つのリンクを出力するだけです。これ以上何もない。

于 2013-08-27T11:39:51.710 に答える
1

あなたは自分自身を複雑にしています、私はあなたのコードを修正しました

<?php
    $categories = get_the_category();
    $separator = ', ';
    if($categories) {
        foreach($categories as $category) {
            $output .= $category->cat_name.$separator;
            $cat_id[] = $category->cat_ID;
        } 
        foreach($cat_id as $id) {
            $category_link = get_category_link( $id ); 
            $cat_name = get_cat_name($id);?>
            <a href="<?php echo esc_url( $category_link ); ?>" title="<?php echo $cat_name;?>"><?php echo $cat_name; ?></a>
            <?php 
        }
    } 
?>

コーデックス: http://codex.wordpress.org/Function_Reference/get_cat_name

于 2013-08-27T11:40:38.153 に答える