Здравствуйте. Делаю мебельный портал http://sitemurmansk.ru/ (записи — товары, пользователи — мебельные компании)
Что нужно: Без плагинов!
1) Перейменовать поле Имя, биография, заголовок обо мне — в профиле компании.
2) Сделал что бы другим пользователям не показывались чужие записи (товары). Не знаю как сделать тоже самое с медиафайлами.. т.е что бы только тот кто залил медиафайл видел свои фото. Т.е что бы другие компании не могли удалять чужие фото да и видеть вообще. Нашел решение но оно не работает http://mywordpress.ru/support/viewtopic.php?id=22877
3) Так же не получается что бы биография в профиле компании понимала отступы. Ну или визуальный редактор прикрутить тоже не выходит.
4) Так же еще пример загрузки аватара в профиле компании тоже без плагина.
Спасибо.


Слишком много вопросов в одном посте-вопросе. Ознакомьтесь с правилами блога.
1. Изменить название полей в профиле можно так:
add_action('admin_head-user-edit.php', 'setup_user_edit'); function setup_user_edit() { add_filter('gettext', 'change_profile_labels'); } function change_profile_labels($input) { if ('Nickname' == $input) return 'Nickname replacement'; if ('Biographical Info' == $input) return 'Biographical Info replacement'; return $input; }2. Ответ на второй вопрос – https://n-wp.ru/kak-polzovatelyu-pokazyivat-tolko-ego-mediafaylyi/
3. Редактор для поля Биография – https://n-wp.ru/test-25/
4. Аватар загружается автоматически – WordPress использует систему Gravatar, Подробнее об этом – https://n-wp.ru/kak-sdelat-avatar/ Если же вам нужно использовать собственную картинку, закачиваемую на сайт, то воспользуйтесь плагинами, например, WP User Avatar. Поищите по блогу – он выдаст еще несколько аналогичных.
Спасибо за помощь, извините за нарушение.
1) Не работает.. ничего не изменилось… мне нужен изменить не импут а лейбл. т.е перейменовать на
2) Спасибо за помощь но скрытие медиа файлов не работает . Ваш пример работает на записях но на медиа почему то нет. Так же показывает у всех и админские и чужие..
3) Так же биография работает.. вставляю все в fuction и ничего не происходит.. может что то изменилось в последних версиях вордпреса?
4) На счет аватара использовал Simple Local Avatars все работает но хотелось все же решение без плагина..
2. У меня работает этот код в functions.php:
function posts_for_current_author($query) { global $user_level; if($query->is_admin && $user_level < 5) { global $user_ID; $query->set('author', $user_ID); unset($user_ID); } unset($user_level); return $query; } add_filter('pre_get_posts', 'posts_for_current_author'); function wps_get_comment_list_by_user($clauses) { if (is_admin()) { global $user_ID, $wpdb; $clauses['join'] = ", ".$wpdb->base_prefix."posts"; $clauses['where'] .= " AND ".$wpdb->base_prefix."posts.post_author = ".$user_ID." AND ".$wpdb->base_prefix."comments.comment_post_ID = ".$wpdb->base_prefix."posts.ID"; }; return $clauses; }; if(!current_user_can('edit_others_posts')) { add_filter('comments_clauses', 'wps_get_comment_list_by_user'); }Код действует на выборку постов одного автора в админке, заодно на все медиафайлы и комментарии.
1. Универсальным способом будет прямое редактирование файла /wp-admin/profile.php, но при обновлении движка нужно будет редактировать файл заново. Либо, как вариант, создать внешнюю страницу профиля с полями, которые вы можете назвать. Например, Front-End Only Users. Но я бесплатные плагины, изменяющие названия полей профиля я не встречал.
3. Попробуйте Rich Text Biography и Visual Editor Biography.
Спасибо, Нашел только что вот такое решение.
//Скрываем медиафайлы от разных юзеров
function my_authored_content($query) {
//get current user info to see if they are allowed to access ANY posts and pages
$current_user = wp_get_current_user();
// set current user to $is_user
$is_user = $current_user->user_login;
//if is admin or ‘is_user’ does not equal #username
if (!current_user_can(‘manage_options’)){
//if in the admin panel
if($query->is_admin) {
global $user_ID;
$query->set(‘author’, $user_ID);
}
return $query;
}
return $query;
}
add_filter(‘pre_get_posts’, ‘my_authored_content’);
Вот самый лучший код что удалось найти!
//Скрываем изображения от других пользователей add_filter( 'posts_where', 'hide_attachments_wpquery_where' ); function hide_attachments_wpquery_where( $where ){ global $current_user; if( !current_user_can( 'manage_options' ) ) { if( is_user_logged_in() ){ if( isset( $_POST['action'] ) ){ // library query if( $_POST['action'] == 'query-attachments' ){ $where .= ' AND post_author='.$current_user->data->ID; } } } } return $where; } //Скрываем посты от других пользователей. function hide_posts_media_by_other($query) { global $pagenow; if( ( 'edit.php' != $pagenow && 'upload.php' != $pagenow ) || !$query->is_admin ){ return $query; } if( !current_user_can( 'manage_options' ) ) { global $user_ID; $query->set('author', $user_ID ); } return $query; } add_filter('pre_get_posts', 'hide_posts_media_by_other');