これにより、フィールドが新しいタグの追加フォームに追加されます。
function tag_add_form_fields ( $taxonomy ){
?>
<div class="form-field term-colorpicker-wrap">
<label for="term-colorpicker">Category Color</label>
<input type="color" name="_tag_color" value="#737373" class="colorpicker" id="term-colorpicker" />
<p>This is the field description where you can tell the user how the color is used in the theme.</p>
</div>
<?php
}
add_action('add_tag_form_fields','tag_add_form_fields');
これにより、フィールドがタグ編集フォームに追加されます。
function tag_edit_form_fields ( $term ) {
$color = get_term_meta( $term->term_id, '_tag_color', true );
$color = ( ! empty( $color ) ) ? "#{$color}" : '#737373';
?>
<tr class="form-field term-colorpicker-wrap">
<th scope="row"><label for="term-colorpicker">Severity Color: <?php echo $color; ?></label></th>
<td>
<input type="color" name="_tag_color" value=" <?php echo $color; ?>" class="colorpicker" id="term-colorpicker" />
<p class="description">This is the field description where you can tell the user how the color is used in the theme.</p>
</td>
</tr>
<?php
}
add_action('edit_tag_form_fields','tag_edit_form_fields');
これは機能していない部分です。データベースからのデータの保存と取得
function save_termmeta_tag( $term_id ) {
// Save term color if possible
if( isset( $_POST['_tag_color'] ) && ! empty( $_POST['_tag_color'] ) ) {
update_term_meta( $term_id, '_tag_color', sanitize_hex_color_no_hash( $_POST['_tag_color'] ) );
} else {
delete_term_meta( $term_id, '_tag_color' );
}
}
add_action( 'created_tag', 'save_termmeta_tag' );
add_action( 'edited_tag', 'save_termmeta_tag' );
アクションフックが正しくないと思います。
言うまでもなく、コードはもともと別の投稿された質問からのものです。私はちょうど私のニーズに合うようにそれを微調整しました。
更新と保存にはadd_action( 'edit_term', 'save_termmeta_tag' );
を使います
実は今も使いたかったのです。基本的に、これは実際にタグで機能するインターネット上の唯一の場所です。
私はそれでいくつかの問題を発見し、それを編集することに成功し、今私のために動作します:
ここでは、スペース文字も値に保存しています
<input type="color" name="_tag_color" value=" <?php echo $color; ?>"
->削除されたスペース
<input type="color" name="_tag_color" value=" <?php echo $color; ?>"
ベンからの支援があってもそれを知った。保存はまだ機能せず、どういうわけかあなたのデフォルトの色がそこにあります。私は運で見つけました-しかし、私は今、理由はありません、サニタイズ方法はそれを保存せずに混乱させています。
sanitize_hex_color_no_hash()
したがって、基本的に削除した場合、正常に動作し始めました。
function save_termmeta_tag( $term_id ) {
// Save term color if possible
if( isset( $_POST['_tag_color'] ) && ! empty( $_POST['_tag_color'] ) ) {
update_term_meta( $term_id, '_tag_color', $_POST['_tag_color'] );
} else {
delete_term_meta( $term_id, '_tag_color' );
}
}
add_action( 'edit_term', 'save_termmeta_tag' );
は必要ありません
UPDATE後で、別のメソッドに配置する前にサニタイズすると、役立つことがわかりました
// Save term color if possible
if( isset( $_POST['_tag_color'] ) && ! empty( $_POST['_tag_color'] ) ) {
$sanitized_color = sanitize_hex_color_no_hash($_POST['_tag_color']);
update_term_meta( $term_id, '_tag_color', $sanitized_color );
} else {
delete_term_meta( $term_id, '_tag_color' );
}