Добавить пользовательские поля к информации об авторе в WordPress

Я новичок в WordPress, и я ищу способ добавить настраиваемые поля и отображать их (без плагина).
я обнаружил отличный пример в сети. Автор добавляет ряд настраиваемых полей, добавив следующую функцию к fuctions.php файл.

function modify_contact_methods($profile_fields) {

// Add new fields
$profile_fields['linkedin'] = 'LinkedIn URL';
$profile_fields['telephone'] = 'Telephone';
return $profile_fields;
}

add_filter('user_contactmethods', 'modify_contact_methods');

Я смог успешно добавить такие поля в Контакты раздел моей формы регистрации пользователя. Я пытался добавить пользовательские поля в другие разделы, такие как Информация об авторе раздел (где Био), но безуспешно.
Я думаю, что я должен изменить значение user_contactmethods в add_filter(...) функция, но я не смог ничего найти.

Я даже не знаю, правильно ли это сделать, но до сих пор это работало.

1

Решение

Поскольку вы новичок в WordPress, у вас нет знаний о filter а также action, Если вы пройдете через список фильтров , Ты найдешь user_contactmethods Вот.

Как вы можете видеть в Авторские и пользовательские фильтры, Есть только 4 фильтра для Автора и Пользователя. И мы не можем использовать ни один из них для достижения желаемого результата.

Но как-то мы можем сделать это, добавив еще одно поле под О пользователе что-то вроде Информация об авторе.

    add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );

function extra_user_profile_fields( $user ) { ?>
<h3><?php _e("Author Information", "blank"); ?></h3>

<table class="form-table">
<tr>
<th><label for="author"><?php _e("Author Information"); ?></label></th>
<td>
<textarea name="author" id="author" rows="5" cols="10" ><?php echo esc_attr( get_the_author_meta( 'author', $user->ID ) ); ?></textarea><br />
<span class="description"><?php _e("Please enter Author's Information."); ?></span>
</td>
</tr>
</table>
<?php }

add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );

function save_extra_user_profile_fields( $user_id ) {

if ( !current_user_can( 'edit_user', $user_id ) ) { return false; }

update_user_meta( $user_id, 'author', $_POST['author'] );
}

Таким образом, вы можете добавить столько полей, сколько хотите.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]