이제 WordPress 4.4가 출시되었으므로 새로운 멋진 용어 메타 기능을 사용할 수 있습니다!
그럼에도 불구하고 기본 텍스트 필드를 분류법에 추가하는 방법에 대한 간단한 자습서는없는 것 같습니다. 저스틴 타락 (Justin Tadlock)의이 멋진 튜토리얼을 필요 에 맞게 조정하려고했습니다 . 색상 선택기와 관련된 모든 코드를 제거하고 간단한 텍스트 입력 필드로 교체했지만 작동하지 않습니다.
누군가가 실제 작업 코드 샘플을 제공 할 수 있습니까? 데이터 유효성 검사가 없으면 nonces, 색상 선택기 등이 최소한의 텍스트 상자로 분류 추가 / 분류 체계 편집 페이지에 추가됩니다.
업데이트 : 그 동안이 코드 스 니펫을 약간 변형했습니다.
카테고리에 용어 메타 필드 추가 :
https://gist.github.com/ms-studio/543a0f7dd8ac05ccf037Post Tag에 용어 메타 필드 추가 :
https://gist.github.com/ms-studio/2d78ad3839e05ece2e48사용자 정의 분류에 용어 메타 필드 추가 :
https://gist.github.com/ms-studio/fc21fd5720f5bbdfaddcCustom Taxonomy에 여러 용어 메타 필드를 추가하십시오 : https://gist.github.com/ms-studio/aeae733f5fd9fc524bbc
답변
카테고리에 ‘TERM META TEXT’라는 필드가 추가됩니다. 나는 nonce를 꺼내었지만 실제로 다시 들어가야한다고 생각합니다. 또한, 살균과 무균 처리를하는 것이 좋습니다. 이 예제에는 자바 스크립트 및 CSS 후크가 포함되어 있으며 필요하거나 필요하지 않을 수 있지만 모든 부분이 어떻게 연결되는지 빠르게 확인할 수 있습니다.
즐겨!
// REGISTER TERM META
add_action( 'init', '___register_term_meta_text' );
function ___register_term_meta_text() {
register_meta( 'term', '__term_meta_text', '___sanitize_term_meta_text' );
}
// SANITIZE DATA
function ___sanitize_term_meta_text ( $value ) {
return sanitize_text_field ($value);
}
// GETTER (will be sanitized)
function ___get_term_meta_text( $term_id ) {
$value = get_term_meta( $term_id, '__term_meta_text', true );
$value = ___sanitize_term_meta_text( $value );
return $value;
}
// ADD FIELD TO CATEGORY TERM PAGE
add_action( 'category_add_form_fields', '___add_form_field_term_meta_text' );
function ___add_form_field_term_meta_text() { ?>
<?php wp_nonce_field( basename( __FILE__ ), 'term_meta_text_nonce' ); ?>
<div class="form-field term-meta-text-wrap">
<label for="term-meta-text"><?php _e( 'TERM META TEXT', 'text_domain' ); ?></label>
<input type="text" name="term_meta_text" id="term-meta-text" value="" class="term-meta-text-field" />
</div>
<?php }
// ADD FIELD TO CATEGORY EDIT PAGE
add_action( 'category_edit_form_fields', '___edit_form_field_term_meta_text' );
function ___edit_form_field_term_meta_text( $term ) {
$value = ___get_term_meta_text( $term->term_id );
if ( ! $value )
$value = ""; ?>
<tr class="form-field term-meta-text-wrap">
<th scope="row"><label for="term-meta-text"><?php _e( 'TERM META TEXT', 'text_domain' ); ?></label></th>
<td>
<?php wp_nonce_field( basename( __FILE__ ), 'term_meta_text_nonce' ); ?>
<input type="text" name="term_meta_text" id="term-meta-text" value="<?php echo esc_attr( $value ); ?>" class="term-meta-text-field" />
</td>
</tr>
<?php }
// SAVE TERM META (on term edit & create)
add_action( 'edit_category', '___save_term_meta_text' );
add_action( 'create_category', '___save_term_meta_text' );
function ___save_term_meta_text( $term_id ) {
// verify the nonce --- remove if you don't care
if ( ! isset( $_POST['term_meta_text_nonce'] ) || ! wp_verify_nonce( $_POST['term_meta_text_nonce'], basename( __FILE__ ) ) )
return;
$old_value = ___get_term_meta_text( $term_id );
$new_value = isset( $_POST['term_meta_text'] ) ? ___sanitize_term_meta_text ( $_POST['term_meta_text'] ) : '';
if ( $old_value && '' === $new_value )
delete_term_meta( $term_id, '__term_meta_text' );
else if ( $old_value !== $new_value )
update_term_meta( $term_id, '__term_meta_text', $new_value );
}
// MODIFY COLUMNS (add our meta to the list)
add_filter( 'manage_edit-category_columns', '___edit_term_columns' );
function ___edit_term_columns( $columns ) {
$columns['__term_meta_text'] = __( 'TERM META TEXT', 'text_domain' );
return $columns;
}
// RENDER COLUMNS (render the meta data on a column)
add_filter( 'manage_category_custom_column', '___manage_term_custom_column', 10, 3 );
function ___manage_term_custom_column( $out, $column, $term_id ) {
if ( '__term_meta_text' === $column ) {
$value = ___get_term_meta_text( $term_id );
if ( ! $value )
$value = '';
$out = sprintf( '<span class="term-meta-text-block" style="" >%s</div>', esc_attr( $value ) );
}
return $out;
}
// ADD JAVASCRIPT & STYLES TO COLUMNS
add_action( 'admin_enqueue_scripts', '___admin_enqueue_scripts' );
function ___admin_enqueue_scripts( $hook_suffix ) {
if ( 'edit-tags.php' !== $hook_suffix || 'category' !== get_current_screen()->taxonomy )
return;
// ADD YOUR SUPPORTING CSS / JS FILES HERE
// wp_enqueue_style( 'wp-color-picker' );
// wp_enqueue_script( 'wp-color-picker' );
add_action( 'admin_head', '___meta_term_text_print_styles' );
add_action( 'admin_footer', '___meta_term_text_print_scripts' );
}
// PRINT OUR CUSTOM STYLES
function ___meta_term_text_print_styles() { ?>
<style type="text/css">
.column-__term_meta_text { background-color:rgb(249, 249, 249); border: 1px solid lightgray;}
.column-__term_meta_text .term-meta-text-block { display: inline-block; color:darkturquoise; }
</style>
<?php }
// PRINT OUR CUSTOM SCRIPTS
function ___meta_term_text_print_scripts() { ?>
<script type="text/javascript">
jQuery( document ).ready( function( $ ) {
$input_field = $( '.term-meta-text-field' );
// console.log($input_field); // your input field
} );
</script>
<?php }