2016-01-18 4 views
0

У меня есть пользовательский тип сообщения под названием «школы» на моем сайте Wordpress. Когда вы наводите курсор на вкладку школы, в подменю отображается список школ. Это страницы, которые я создал с разными названиями школ. Теперь, когда вы нажимаете на одну из школьных страниц, у меня есть боковая панель со всеми школами, чтобы они могли перемещаться по различным школам с боковой панели, а не с помощью меню.Тип персонализированного сообщения Активная ссылка - Wordpress

У меня есть боковая панель, заполняемая следующим фрагментом.

while($shools_loop->have_posts()) : $schools_loop->the_post(); 

    $content .= '<li class="schools-list">'; 
    $content .= '<a href="'.get_permalink().'">'.get_the_title().'</a>'; 
    $content .= '</li>'; 

endwhile; 

Это прекрасно работает, и я могу перемещаться по всем школам без проблем с боковой панели. Я пытаюсь найти способ, когда я просматриваю школу через боковую панель или навигацию, когда я на активной странице, я создаю CSS-стиль для li на странице ACTIVE. Я уже понял, как это сделать с навигационным меню. Но нужна помощь в меню боковой панели. Поскольку меню списка боковых панелей заполняется, я не знаю, как проверить, активна ли ссылка пользовательского типа сообщений, и соответствует странице/school/get-title.

я нашел что-то вроде этого в Интернете, и я попытался его редактирования, но я не уверен, если это работает только для меню нав

add_action('init', 'create_post_type'); 
function create_post_type() { 
    register_post_type('services', 
    array(
     'labels' => array(
     'name' => __('Services'), 
     'singular_name' => __('Services') 
    ), 
    'public' => true, 
    'has_archive' => true, 
    'rewrite' => array('slug' => 'services'), 
    ) 
); 
} 

// highlight active custom post page in nav 
add_filter('nav_menu_css_class', 'namespace_menu_classes', 10, 2); 
function namespace_menu_classes($classes , $item){ 
    if (get_post_type() == 'services') { 
    // remove unwanted classes if found 
    $classes = str_replace('current_page_parent', '', $classes); 
    // find the url you want and add the class you want 
    if ($item->url == 'services/physical-therapy-services/') { 
     $classes = str_replace('menu-item', 'menu-item current_page_parent', $classes); 
    } 
    } 
    return $classes; 
    } 

В принципе нужно найти способ, чтобы проверить, является ли таможенного поста тип активен или нет.

+0

"услуг" следует читать "школы" –

ответ

0

Вы можете установить global переменные в главной странице шаблона с идентификатором текущего поста, а затем в цикле боковой панели, вы можете получить эту global переменный и сравнить его с ID текущим Постом с помощью get_the_ID() функции, а затем выполнить необходимые действия.

Пример:

одного cpt.php

// Inside the loop 
global $post_id = get_the_ID(); 

врезке-cpt.php

$post_id = isset($_GLOBALS['post_id']) ? $_GLOBALS['post_id'] : 0; 
while($shools_loop->have_posts()) : $schools_loop->the_post(); 
    if($post_id == get_the_ID()){ 
     // This is the active link 
     $content .= '<li class="schools-list selected">'; 

    } else { 
     $content .= '<li class="schools-list">'; 

    } 

    $content .= '<a href="'.get_permalink().'">'.get_the_title().'</a>'; 
    $content .= '</li>'; 

endwhile; 
+0

вы можете показать Мне примерный пример, как это сделать? –