サポート » 使い方全般 » WordPressのカテゴリーにカスタムフィールドを追加する

  • 解決済 AIR2377

    (@air2377)


    下記URLを参考にカテゴリーにカスタムフィールドを追加して、カテゴリー以下のページに項目を表示させようと考えています。

    http://www.webopixel.net/wordpress/436.html
    http://www.designerhara.com/blog/2012/01/14/75

    カテゴリーにカスタムフィールドを追加でき、表示もされるのですが、カテゴリーAで登録したカスタムフィールドだけ表示したいのに、カテゴリーBやカテゴリーCで登録した項目も表示されています。

    カテゴリーを制御する場合はどのようにしたらよいのでしょうか?

    教えてもらえたら助かります。

    以下、ソースを書きたいと思います。

    /*function.php*/

    <?php
    add_action ( ‘edit_category_form_fields’, ‘extra_category_fields’);
    //カテゴリ編集ページに、入力フィールド追加
    function extra_category_fields( $tag ) {
    $t_id = $tag->term_id;
    $cat_meta = get_option(“cat_$t_id”);
    ?>
    <tr class=”form-field”>
    <th><label for=”extra_text”>Title</label></th>
    <td><input type=”text” name=”Cat_meta[extra_text]” id=”extra_text” size=”25″ value=”<?php if(isset ( $cat_meta[‘extra_text’])) echo esc_html($cat_meta[‘extra_text’]) ?>” /></td>
    </tr>
    <tr class=”form-field”>
    <th><label for=”extra_text02″>Description</label></th>
    <td><textarea name=”Cat_meta[extra_text02]” id=”extra_text02″ ><?php if(isset ( $cat_meta[‘extra_text02’])) echo esc_html($cat_meta[‘extra_text02’]) ?></textarea></td>
    </tr> <tr class=”form-field”>
    <th><label for=”extra_text03″>Keywords</label></th>
    <td><input type=”text” name=”Cat_meta[extra_text03]” id=”extra_text03″ size=”25″ value=”<?php if(isset ( $cat_meta[‘extra_text03’])) echo esc_html($cat_meta[‘extra_text03’]) ?>” /></td>
    </tr>
    <?php
    }
    add_action ( ‘edited_term’, ‘save_extra_category_fileds’);
    //保存処理
    function save_extra_category_fileds( $term_id ) {
    if ( isset( $_POST[‘Cat_meta’] ) ) {
    $t_id = $term_id;
    $cat_meta = get_option( “cat_$t_id”);
    $cat_keys = array_keys($_POST[‘Cat_meta’]);
    foreach ($cat_keys as $key){
    if (isset($_POST[‘Cat_meta’][$key])){
    $cat_meta[$key] = $_POST[‘Cat_meta’][$key];
    }
    }
    update_option( “cat_$t_id”, $cat_meta );
    }
    }

    /*single.php*/

    <?php
    $tag_all = get_terms(“category”, “fields=all”);
    foreach($tag_all as $value):
    $cat_data = get_option(‘cat_’.intval($value->term_id));

    ?>
    <?php echo esc_html($cat_data[‘extra_text’]) ?>
    <?php echo esc_html($cat_data[‘extra_text02’]) ?>
    <?php echo esc_html($cat_data[‘extra_text03’]) ?>
    <?php endforeach; ?>

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 AIR2377

    (@air2377)

    カテゴリーへのカスタムフィールド追加は結局出来ませんでした。

    カテゴリー毎にカスタムフィールドを登録することは出来ませんでしたが、タグを使ってカテゴリ専用の情報を追加することで自己解決しました。

    http://ja.forums.wordpress.org/topic/9186?replies=4

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「WordPressのカテゴリーにカスタムフィールドを追加する」には新たに返信することはできません。