【发布时间】:2021-01-30 01:15:44
【问题描述】:
我已经为 pa_color 分类术语创建了一个“颜色”自定义字段,通过以下原生方式:
这是我的代码:
add_action( 'pa_color_add_form_fields', 'themename_pa_color_add_term_fields' );
function themename_pa_color_add_term_fields( $taxonomy ) {
?>
<div class="form-field">
<label for="themename_pa_color">PA Color</label>
<input type="color" name="themename_pa_color" id="themename_pa_color" class="wpColorChoose" />
<p>Field description may go here.</p>
</div>
<?php
}
add_action( 'pa_color_edit_form_fields', 'themename_pa_color_edit_term_fields', 10, 2 );
function themename_pa_color_edit_term_fields( $term, $taxonomy ) {
$value = get_term_meta( $term->term_id, 'themename_pa_color', true );
echo '<tr class="form-field">
<th>
<label for="themename_pa_color">PA Color</label>
</th>
<td>
<input name="themename_pa_color" id="themename_pa_color" type="color" class="wpColorChoose" value="' . esc_attr( $value ) .'" />
<p class="description">Field description may go here.</p>
</td>
</tr>';
}
add_action( 'created_pa_color', 'themename_pa_color_save_term_fields' );
add_action( 'edited_pa_color', 'themename_pa_color_save_term_fields' );
function themename_pa_color_save_term_fields( $term_id ) {
update_term_meta(
$term_id,
'themename_pa_color',
sanitize_text_field( $_POST[ 'themename_pa_color' ] )
);
}
我怎样才能将他们的价值观带到我需要的地方?
当尝试使用$term->themename_pa_color 时,它不起作用。
它适用于名称和描述默认字段,例如 $term->name 或 $term->description,但不适用于我的字段。
这就是我创建它的方式,它正确保存了值。
【问题讨论】:
-
可能还有其他问题。它在管理栏中保存值,但这是我在 ` $terms = get_terms( 'pa_color' ); 之后看到的。回声“
”; print_r($terms);回声“
”;` -
<pre>Array ( [0] =&gt; WP_Term Object ( [term_id] =&gt; 130 [name] =&gt; Beige [slug] =&gt; beige [term_group] =&gt; 0 [term_taxonomy_id] =&gt; 130 [taxonomy] =&gt; pa_color [description] =&gt; 375sdkfjsdgtjdsop [parent] =&gt; 0 [count] =&gt; 1 [filter] =&gt; raw ) )</pre> -
感谢您的帮助!结果是
<div class="d-flex"><?php $terms = get_terms( 'pa_color' ); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){?><ul><?php foreach ( $terms as $term ) {?> <li><a href="<?php echo get_term_link( $term )?>"><div class="pa_color-bg" style=" border: 1px solid; background: <?php echo get_term_meta( $term->term_id, 'themename_pa_color', true ); ?> ">&#9679;</div> <span><?php echo $term->name ?></span></a></li><?php } } ?></ul></div>,终于看到了
标签: php wordpress woocommerce metadata taxonomy-terms