У нас есть сайт Wordpress в корне нашего домена. Плагин перевода, который мы используем, добавляет к домену (в нашем случае для чешского языка) /cs — это означает, что мы можем выполнить более одного перевода, но использовать ту же базу данных и wp-контент, что и основной англоязычный веб-сайт.
Однако добавленный /cs приводит к сбою функции выхода из системы, поскольку она пытается использовать текущий каталог в качестве основы для извлечения фактического содержимого сайта.
Фактически используется код . Мы попробовали простой HTML-ссылку, но ссылка для выхода из системы является динамической и требует уникального значения nonce для проверки команды.
Есть ли у вас какие-либо идеи о том, как мы можем создать кнопка выхода из системы, которая использует фактический адрес сайта (mywebsite.com), а не добавленный «каталог» (mywebsite.com/cs). До сих пор мне не удалось отредактировать wp_logout_url, добавив перед ним /. Есть идеи?
Примеры ссылок:
Правильно:
http://www.mywebsite.com/backend?action ... d8eaf8594a
Неверно, результатом является ОШИБКА 404:
http://www.mywebsite.com/cs/backend?act ... d8eaf8594a
Используется фактический код (соответствующим кодом выхода является часть #bawlogout#):
add_filter( 'wp_setup_nav_menu_item', 'bawllm_setup_nav_menu_item' );
function bawllm_setup_nav_menu_item( $item )
{
global $pagenow;
if( $pagenow!='nav-menus.php' && !defined('DOING_AJAX') && isset( $item->url ) && strstr( $item->url, '#baw' ) != '' ){
$item_url = substr( $item->url, 0, strpos( $item->url, '#', 1 ) ) . '#';
$item_redirect = str_replace( $item_url, '', $item->url );
switch( $item_url ) {
case '#bawloginout#' :
$item_redirect = explode( '|', $item_redirect );
if( count( $item_redirect ) != 2 )
$item_redirect[1] = $item_redirect[0];
for( $i = 0; $i url = is_user_logged_in() ? wp_logout_url( $item_redirect[1] ) : wp_login_url( $item_redirect[0] );
$item->title = bawllm_loginout_title( $item->title ) ; break;
case '#bawlogin#' : $item->url = wp_login_url( $item_redirect ); break;
case '#bawlogout#' : $item->url = wp_logout_url( $item_redirect ); break;
case '#bawregister#' : if( is_user_logged_in() ) $item->title = '#bawregister#'; else $item->url = site_url( '/wp-login.php?action=register', 'login' ); break;
}
$item->url = esc_url( $item->url );
}
return $item;
}
Подробнее здесь: https://stackoverflow.com/questions/158 ... on-failing
Сайт Wordpress в подкаталоге, функция выхода из системы не работает ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1730346053
Anonymous
У нас есть сайт Wordpress в корне нашего домена. Плагин перевода, который мы используем, добавляет к домену (в нашем случае для чешского языка) /cs — это означает, что мы можем выполнить более одного перевода, но использовать ту же базу данных и wp-контент, что и основной англоязычный веб-сайт.
Однако добавленный /cs приводит к сбою функции выхода из системы, поскольку она пытается использовать текущий каталог в качестве основы для извлечения фактического содержимого сайта.
Фактически используется код . Мы попробовали простой HTML-ссылку, но ссылка для выхода из системы является динамической и требует уникального значения nonce для проверки команды.
Есть ли у вас какие-либо идеи о том, как мы можем создать кнопка выхода из системы, которая использует фактический адрес сайта (mywebsite.com), а не добавленный «каталог» (mywebsite.com/cs). До сих пор мне не удалось отредактировать [b]wp_logout_url[/b], добавив перед ним /. Есть идеи?
Примеры ссылок:
Правильно:
http://www.mywebsite.com/backend?action=logout&redirect_to=index.php&_wpnonce=d8eaf8594a
Неверно, результатом является ОШИБКА 404:
http://www.mywebsite.com/cs/backend?action=logout&redirect_to=index.php&_wpnonce=d8eaf8594a
Используется фактический код (соответствующим кодом выхода является часть #bawlogout#):
add_filter( 'wp_setup_nav_menu_item', 'bawllm_setup_nav_menu_item' );
function bawllm_setup_nav_menu_item( $item )
{
global $pagenow;
if( $pagenow!='nav-menus.php' && !defined('DOING_AJAX') && isset( $item->url ) && strstr( $item->url, '#baw' ) != '' ){
$item_url = substr( $item->url, 0, strpos( $item->url, '#', 1 ) ) . '#';
$item_redirect = str_replace( $item_url, '', $item->url );
switch( $item_url ) {
case '#bawloginout#' :
$item_redirect = explode( '|', $item_redirect );
if( count( $item_redirect ) != 2 )
$item_redirect[1] = $item_redirect[0];
for( $i = 0; $i url = is_user_logged_in() ? wp_logout_url( $item_redirect[1] ) : wp_login_url( $item_redirect[0] );
$item->title = bawllm_loginout_title( $item->title ) ; break;
case '#bawlogin#' : $item->url = wp_login_url( $item_redirect ); break;
case '#bawlogout#' : $item->url = wp_logout_url( $item_redirect ); break;
case '#bawregister#' : if( is_user_logged_in() ) $item->title = '#bawregister#'; else $item->url = site_url( '/wp-login.php?action=register', 'login' ); break;
}
$item->url = esc_url( $item->url );
}
return $item;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/15823589/wordpress-site-in-subdirectory-logout-function-failing[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия