Intereting Posts
Полнофункциональный плагин форума Как использовать ассоциативный массив в post__in с WP_Query? Это правильное использование создания / использования переходного процесса? Автоматическая активация плагина с уникальными настройками пользователя wordpress 3.9 удаленный токен auth Экспорт специального меню Пользовательские поля не отображаются WooCommerce – покупка, а также продажа Прикрепление мета-поля к определенной категории / таксономии в пользовательском типе сообщений / page / не работает с пользовательской структурой постоянной ссылки (WooCommerce) Какой идентификатор использует WordPress для отображения опубликованных / составленных сообщений в режиме предварительного просмотра? Как: выход из системы PHP? Перенаправление пользователей на страницу входа в wp front end wp Как отобразить отображаемое изображение страницы? прикреплять непривязанные избранные изображения к соответствующим сообщениям

Автор Никнейм URL Friendly

Используя приведенный ниже код, чтобы использовать URL-адрес страницы автора, используйте «ник». Работает нормально, но когда псевдоним более одного слова, он не делает его дружественным URL. Любой способ сделать это?

add_filter( 'request', 'wpse5742_request' ); function wpse5742_request( $query_vars ) { if ( array_key_exists( 'author_name', $query_vars ) ) { global $wpdb; $author_id = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key='nickname' AND meta_value = %s", $query_vars['author_name'] ) ); if ( $author_id ) { $query_vars['author'] = $author_id; unset( $query_vars['author_name'] ); } } return $query_vars; } add_filter( 'author_link', 'wpse5742_author_link', 10, 3 ); function wpse5742_author_link( $link, $author_id, $author_nicename ) { $author_nickname = get_user_meta( $author_id, 'nickname', true ); if ( $author_nickname ) { $link = str_replace( $author_nicename, $author_nickname, $link ); } return $link; } add_action( 'user_profile_update_errors', 'wpse5742_set_user_nicename_to_nickname', 10, 3 ); function wpse5742_set_user_nicename_to_nickname( &$errors, $update, &$user ){ if ( ! empty( $user->nickname ) ) { $user->user_nicename = sanitize_title( $user->nickname, $user->display_name ); } } 

Solutions Collecting From Web of "Автор Никнейм URL Friendly"

Вы уже использовали sanitize_title один раз в своем коде. Вы должны использовать это снова, внутри функции wpse5742_author_link .

 $link = str_replace( $author_nicename, sanitize_title($author_nickname), $link ); 

Это должно заботиться о пространствах. Еще один вариант – использовать urlencode но sanitize_title сохраняет согласованность.

Я (минимально) проверил ваш код с этим изменением и, похоже, сработал.