Добавить Произвольное Поле в Комментарии
Я просмотрел множество обсуждений касательно моей проблемы, но к сожалению, ничего не подошло, и это мой последний вариант. Я хочу добавить несколько произвольных полей в форму комментариев. Как я могу это сделать?
Вот вам: Добавление пользовательских полей в формы комментариев WordPress?
И еще один отличный пост на эту тему: http://wpengineer.com/2214/adding-input-fields-to-the-comment-form/
Доступны функции для добавления/обновления, удаления метаданных комментариев, аналогично метаданным записей и пользователей.
Редактирование:
Вот пример для начала (поместите код в functions.php или в собственный плагин):
Добавляем поля в форму комментария:
add_filter( 'comment_form_defaults', 'change_comment_form_defaults');
function change_comment_form_defaults( $default ) {
$commenter = wp_get_current_commenter();
$default[ 'fields' ][ 'email' ] .= '<p class="comment-form-author">' .
'<label for="city">'. __('Город') . '</label>
<span class="required">*</span>
<input id="city" name="city" size="30" type="text" /></p>';
return $default;
}
4 функции для получения/добавления/обновления/удаления метаданных комментариев:
get_comment_meta( $comment_id, $meta_key, $single = false );
add_comment_meta($comment_id, $meta_key, $meta_value, $unique = false );
update_comment_meta($comment_id, $meta_key, $meta_value, $unique = false );
delete_comment_meta( $comment_id, $meta_key, $single = false );
Здесь вы можете выполнить валидацию:
add_filter( 'preprocess_comment', 'verify_comment_meta_data' );
function verify_comment_meta_data( $commentdata ) {
if ( ! isset( $_POST['city'] ) )
wp_die( __( 'Ошибка: пожалуйста, заполните обязательное поле (город).' ) );
return $commentdata;
}
И сохранить метаданные комментария:
add_action( 'comment_post', 'save_comment_meta_data' );
function save_comment_meta_data( $comment_id ) {
add_comment_meta( $comment_id, 'city', $_POST[ 'city' ] );
}
Получить и отобразить метаданные комментария:
add_filter( 'get_comment_author_link', 'attach_city_to_author' );
function attach_city_to_author( $author ) {
$city = get_comment_meta( get_comment_ID(), 'city', true );
if ( $city )
$author .= " ($city)";
return $author;
}
(Примечание: Весь код взят из WPengineer по ссылке выше. В том посте есть больше деталей и расширенных примеров использования, пожалуйста, ознакомьтесь и с ними!)
Эта презентация от Боу Либенса должна показать вам, как это сделать: Интеграция с комментариями
А эта статья от Отто даст вам больше информации: Советы по темам WordPress 3.0: Форма комментариев
Также доступен базовый плагин под названием "Wordpress Plugin: Extra Comment Fields" (извините, не могу разместить ссылку).
Ссылки могут быть удалены. Пожалуйста, улучшите свой ответ, добавив часть контента, который вы нашли по этим ссылкам. Лучше всего будет привести пример.
kaiser