Минимальная длина slug
-
Столкнулся с проблемой при mod rewrite слова author в ссылке профайла.
К примеру
Так работает: site.com/member/vanya
А вот так не работает: site.com/m/vanya
Если символов 2 или больше — то работает нормально.
Вопрос, как сделать чтобы можно было переписать на 1 символ ?
-
Тема изменена 1 месяц назад пользователем
wildapache.
-
Тема изменена 1 месяц назад пользователем
-
wildapache, привет. Как-то так:
function change_author_base_m() {
global $wp_rewrite;
$wp_rewrite->author_base = 'm';
add_rewrite_rule( '^m/([^/]+)/?$', 'index.php?author_name=$matches[1]', 'top' );
} add_action( 'init', 'change_author_base_m' );
function fix_m_author_rules( $author_rewrite ) {
$new_rules = [ '^m/([^/]+)/?$' => 'index.php?author_name=$matches[1]' ];
return $new_rules + $author_rewrite;
} add_filter( 'author_rewrite_rules', 'fix_m_author_rules' );Perfetct !
Спасибо.
Работает !
function replace_author_permalinks() {
global $wp_rewrite;
$wp_rewrite->author_base = 'u';
$wp_rewrite->author_structure = '/' . $wp_rewrite->author_base. '/%author%';
}
add_action('init','replace_author_permalinks');интересно почему вот этот простой вариант не работал именно с 1 буквой
wildapache, данный вопрос упирается в логику работы движка как он парсит URL, это в первую очередь.
Просто такие реврайты — нужно ещё уметь делать, в том плане, чтобы они не затрагивали базовую работу, чтобы потом не повылазили ещё где-то ошибки.
wildapache, тоже верно. Код выше учитывает заскоки движка; из нюансов — если потребуется пагинация, нужно будет код дополнять.
Не сильно вникал в реврайт, по этому нашёл базовую функцию, а она оказалась мало-рабочей, подумал, может это какие-то лимиты самого движка, раз есть ограничения на 1 символ, потому что вспомнил что там поиск тоже с одной буквой. Вот решил тут спросить. Да в принципе проблем с реврайтом особо нет. На счёт пагинации не понял чего именно ?
wildapache,
На счёт пагинации не понял чего именно ?
Пользовательских URL с изменённой базой:
/author->/m(или/u).Опять не понял, наверно где-то есть loop для всех авторов ?
wildapache, когда переписывается база авторских URL (
/author/r3n0->/u/r3n0), вопрос пагинации (/u/r3n0/page/2) также должен быть учтён в коде, если у авторов предполагается наличие опубликованных записей >1.Я о таком не знал, что по «автору» можно листать посты, получается есть loop для авторов.
Нужно будет поискать потом где-то пример.
Так как у меня задача просто сделать страницу автора с базовой информацией и всё.
Но, посмотрю пример с loop авторов, чтобы хоть знать как это работает там
Ещё один вопрос, как можно сделать выход из аккаунта без подтверждения ?
К примеру, пользователь нажимает выйти — а его перекидывает на страницу — вы действительно хотите выйти ? Можно — этот эффект — как то убрать ? Чтобы нажал просто выйти — с редиректом на главную
wildapache, обычно так:
esc_url( wp_logout_url( home_url() ) );(закрывает сессию пользователя и перенаправляет с текущей страницы на главную страницу сайта), если кнопка/ссылка выхода из аккаунта расположена вне топ-бара. Для топ-бара можно использовать функцию вроде:function secured_logout_without_confirmation() {
if ( isset( $_GET['action'] ) && $_GET['action'] === 'logout' && isset( $_GET['_wpnonce'] ) ) {
if ( wp_verify_nonce( $_GET['_wpnonce'], 'log-out' ) ) { wp_logout();wp_redirect( home_url() );exit; }
}
} add_action( 'init', 'secured_logout_without_confirmation', 1 );Первый вариант у меня перенапрявляет на страницу подтверждения выхода, второй попробую позже. Мне именно нужно — нажал — вышел (с редиректов на хоум)
Всё равно требует подтверждения — даже с action secured_logout_without_confirmation
-
Ответ изменён 4 недели, 1 день назад пользователем
wildapache.
Прочитал что как вариант можно сделать на аяксе
-
Ответ изменён 4 недели, 1 день назад пользователем
Для ответа на тему необходимо авторизоваться.