Intereting Posts
Отображение div из назначенного meta_value, когда на странице Должен ли я удалять переходные процессы из таблицы wp_options? Приложение 404 Список дочерних страниц второго уровня Как избавиться от дополнительной средней части моей постоянной ссылки Почему возникает фатальная ошибка: вызов неопределенной функции get_most_recent_post_of_user ()? Как я могу получить размеры пользовательских размеров эскизов? Woocommerce: пользовательские поля и короткие текстовые коды электронной почты, ec_custom_field Как можно разрешить HTML в Author Bio? Ограничить количество пользователей, возвращаемых при сортировке пользователей по последним функциям сообщений Где я должен сообщить WordPress, где должны быть написаны сообщения об ошибках? Устранение неполадок bbpress Является ли автоматическое распознавание сообщений функцией WordPress? Как отключить его? add_rewrite_rule и настраиваемая переменная Игнорировать / пропустить значение по умолчанию в orderby menu_order?

Автор Никнейм 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 сохраняет согласованность.

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