马马杜卡,
感谢您的回复。不,这不是一件事后保存的事情——这会创建额外的用户配置文件字段(http ~/wp admin/user edit.php),其值也是自定义分类法的“后代”。
例如,分类法=冰淇淋,后代/儿童/分类法=巧克力,香草。我想让巧克力和香草成为作家在个人资料中被问及“你最喜欢什么口味的冰淇淋”时可以选择的选项然而,有数百种不同口味的冰淇淋,我不想手动创建所有这些“潜在”值,而是想使用分类数据动态创建这些选项。这意味着,如果我在“添加新冰淇淋”下添加一个名为“草莓”的新儿童税,该选项也应自动填充到“编辑用户/个人资料”页面中。
请参阅我的函数中的代码。下面的php文件。这会吐出正确的数据,但当输出到屏幕时,它会被“破坏”(如单选按钮前所示:checked="checked" />Chi Omega)
此外,选中并保存单选按钮时不会另存为选中,但它会将正确选择的值存储到用户表数据库中。
非常感谢您的帮助。
add_action ( \'show_user_profile\', \'my_show_extra_profile_fields\' );
add_action ( \'edit_user_profile\', \'my_show_extra_profile_fields\' );
function my_show_extra_profile_fields ( $user )
{
?>
<h3>Additional Information</h3>
<table class="form-table">
<tr>
<th><label for="sorority"><?php _e(\'What is your sorority?\'); ?></label></th>
<td>
<?php $sorority = get_the_author_meta( \'sorority\', $user->ID ); ?>
<?php
$terms = get_terms("sorority");
$count = count($terms);
echo \'<ul>\';
foreach ( $terms as $term ) {
echo \'<li><input type="radio" value="\' . esc_attr( $term->name ) . \'" name="sorority" <?php if ($sorority == "\' . esc_attr( $term->name ) . \'") { ?>checked="checked"<?php }?> />\'.$term->name.\'</li>\';
}
echo "</ul>";
?>
</td>
</tr>
</table>
<?php }
add_action ( \'personal_options_update\', \'my_save_extra_profile_fields\' );
add_action ( \'edit_user_profile_update\', \'my_save_extra_profile_fields\' );
function my_save_extra_profile_fields( $user_id )
{ if ( !current_user_can( \'edit_user\', $user_id ) )
return false;
update_usermeta( $user_id, \'sorority\', $_POST[\'sorority\'] );
}