Есть сайт на wordpress
с установленным плагином idcommerce в котором есть функция вывода верхнего меню.
add_action('after_setup_theme', 'idc_check_customizer');
function idc_check_customizer() {
add_filter('wp_nav_menu_items', 'idc_update_menus', 10, 2);
}
function idc_update_menus($nav, $args) {
global $permalink_structure;
if (empty($permalink_structure)) {
$prefix = '&';
}
else {
$prefix = '?';
}
$durl = md_get_durl();
$location = $args->theme_location;
$option = get_option('idc_menu_'.$location);
if ($option) {
do_action('idc_menu_before');
if (is_user_logged_in()) {
$idc_menu = '<li class="createaccount buttonpadding"><a href="'.$durl.'">'.__('My Account', 'memberdeck').'</a></li>';
$idc_menu .= '<li class="login right"><a href="'.wp_logout_url( home_url() ).'">'.__('Logout', 'memberdeck').'</a></li>';
}
else {
$idc_menu = '<li class="createaccount buttonpadding"><a href="'.$durl.$prefix.'action=register">'.__('Create Account', 'memberdeck').'</a></li>';
$idc_menu .= '<li class="login right"><a href="'.$durl.'">'.__('Login', 'memberdeck').'</a></li>';
}
do_action('idc_menu_after');
$nav .= apply_filters('idc_menu', $idc_menu);
}
return $nav;
}
Мне нужно переопределить вывод всего лишь одной ссылки logina,
$idc_menu .= '<li class="login right"><a href="'.$durl.'">'.__('Login', 'memberdeck').'</a></li>';
заменить вместо сформированной в переменной ссылки на информационную панель $durl=/dashboard на страницу логина /login не заменяя вывод в ядре самого плагина.
В functions.php если удаляю экшн
remove_action('after_setup_theme', 'idc_check_customizer');
и дублирую точно такой же фильтр, но уже с ссылкой на /login, то в меню он выводится, но тем самым исчезает левая часть меню, которая принадлежит тому же nav. Как все сделать правильно?
Вам надо добавить свой фильтр wp_nav_menu_items
с более высоким приоритетом (20), чтобы он выполнился позднее:
add_filter( 'wp_nav_menu_items', 'my_idc_update_menus', 20, 2 );
function my_idc_update_menus( $nav, $args ) {
$durl = md_get_durl();
$location = $args->theme_location;
$option = get_option( 'idc_menu_' . $location );
if ( $option ) {
if ( ! is_user_logged_in() ) {
$search = '<li class="login right"><a href="' . $durl . '">' . __( 'Login', 'memberdeck' ) . '</a></li>';
$replace = '<li class="login right"><a href="/login">' . __( 'Login', 'memberdeck' ) . '</a></li>';
$nav = str_replace( $search, $replace, $nav );
}
}
return $nav;
}
Поместите этот код в functions.php.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Есть запрос $query=mysqli_query($connect, "SELECT * FROM lvl_base WHERE steam LIKE '$rank'"); который в последующем обрабатывается5 таких запросов на одной странице в таблици...
Есть каталоги с изображениями, к ним можно получить доступ по абсолютным путям, надо добавить в главный индексный файл проверки на доступ...
Есть сайт на wordpressИнтересует как в php переменную записать вывод html и содержимое echo