WordPressのカテゴリーにカスタムフィールドを追加する
-
下記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; ?>
- トピック「WordPressのカテゴリーにカスタムフィールドを追加する」には新たに返信することはできません。