Wordpress пользовательская иерархия типа сообщения и меню, выделяющееся (current_page_parent)

Я создал пользовательский тип сообщения 'портфеля' и страницы с шаблоном, который получает все сообщения, соответствующие что пользовательский тип сообщения.

Проблема состоит в том, когда я выполняю развертку в фактическое сообщение, сообщение, кажется, находится в соответствии с 'блогом' в выделении главного меню (отображает current_page_parent как класс),

URL постоянной ссылки корректен: www.site.com/portfolio/post-slug

Но меню думает, что родитель является 'блогом'.

Это - очевидно, иерархическая проблема, но я не знаю, что сделать для фиксации ее.

9
задан Craig 17 July 2010 в 01:59
поделиться

1 ответ

Похоже, что это проблема с основным кодом Wordpress; код, который генерирует классы меню, добавляет current_page_parent к странице вашего блога везде, кроме просмотра статических шаблонов страниц.

(Это вскользь обсуждалось на http://core.trac.wordpress.org/ticket/13543).

Однако это можно обойти с помощью пользовательского кода, используя фильтр page_css_class. Например, добавьте в functions.php что-то вроде этого (не проверено на 100%):

function my_page_css_class($css_class, $page) {
    if (get_post_type()=='portfolio' || is_page(57)) {
        if ($page->ID == get_option('page_for_posts')) {
            foreach ($css_class as $k=>$v) {
                if ($v=='current_page_parent') unset($css_class[$k]);
            }
        }
        if ($page->ID==57) {
            $css_class[]='current_page_parent';
        }
    }
    return $css_class;
}
add_filter('page_css_class','my_page_css_class',10,2);

Заменив 57 на ID вашей страницы портфолио, конечно. Это удалит current_page_parent при выводе страницы блога и добавит current_page_parent к странице портфолио, как при просмотре отдельного портфолио, так и при просмотре самой страницы портфолио.

12
ответ дан 4 December 2019 в 09:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: