Intereting Posts
Количество сообщений в категории Как вывести изображение или значок для выбранного флажка в специальном сообщении Пользовательские аватары в комментариях WordPress? Нужна помощь в создании if-statement для настраиваемых мета-полей Отображать подкатегории или дочерние страницы родительского кота / страницы? Получить индивидуальную мета-проблему для одного типа сообщений Можете ли вы фильтровать wp_dropdown_categories с помощью терминов meta? Форма WordPress PHP – данные удаляются при выходе из страницы Использование класса плагина внутри шаблона Добавить класс в Категории Виджет Как изменить add_action () внутри цикла основной функции WooCommerce & Caching wp_redirect не работает из функции shortcode Пользовательский тип сообщения – список всех вложений на экране редактирования Постоянная ссылка на сообщения по умолчанию и пользовательскую таксономию

WordPress Internal @ Mentions

Я ищу способ ссылки на страницы автора в одной установке WordPress, просто поместив символ @ перед именем пользователя человека в сообщении … точно так же, как в твиттере.

Пример:

Если имя пользователя «Bill256», и я пишу «@ Bill256», он будет связан с его страницей автора.

Solutions Collecting From Web of "WordPress Internal @ Mentions"

Это немного сложно, потому что sanitize_user допускает пробелы в именах пользователей, что означает, что трудно избежать захвата всей фразы «@johndoe», что это … »в отличие от фактического имени пользователя« @johndoe », и у вас нет разделителя в конце, что помог бы. Чтобы этого избежать, я наложил требование заменить места в имени пользователя на «+».

 function look_for_author($login) { if (!empty($login[1])) { $lname = str_replace('+',' ',$login[1]); $user = get_user_by('login',$lname); if (!empty($user)) return ' <a href="'.get_author_posts_url($user->ID).'">'.$lname.'</a> '; } return ' '.$login[0].' '; } function hyperlink_authors( $content ){ $content = preg_replace_callback( '/[\s>]+@([A-Za-z0-9_.\-*@\+]+)[^A-Za-z0-9_.\-*@\+]/', 'look_for_author', $content ); return $content; } add_filter( 'the_content', 'hyperlink_authors', 1 ); 

Я бы не ожидал, что это решение будет очень надежным, не без большого количества регулярных выражений. И я думаю, тебе будет лучше с коротким кодом , но ты туда поедешь.

Примечание. Мне пришло в голову, что этот сайт имеет аналогичную функциональность. При написании комментария вы можете уведомить других пользователей, написав «@username», но имена пользователей здесь могут иметь пробелы, как в WordPress. Проблема «пробелов» здесь была решена, если потребовалось просто удалить пробелы , а не заменить знаками «+». Это может быть другим способом решения проблемы.

Посмотрите на тему P2. Он делает это, называя их «Mentions».

http://themes.svn.wordpress.org/p2/1.4.2/inc/mentions.php