Параллакс WordPress тема. Как я могу динамически получить идентификаторы страниц для отображения своих собственных подменю? - PullRequest
0 голосов
/ 17 сентября 2011

Я создаю тему WordPress с функциями параллакса и HTML5, в доме есть все основные страницы и два разных вида навигации.

Основной, это навигация для родительских страниц. Итак, у меня есть О, Проекты и Контакты.

Но у каждой из этих страниц есть дочерние страницы. О странице есть один дочерний элемент, который находится под ним, но, поскольку я не могу получить доступ из главного меню, каждая страница с дочерними или подстраницами имеет второй тип меню.

Также проекты, имеет разные страницы: «Проекты» (основная), «Дизайн» (детская), Консалтинг (детская) и др.

Во втором меню, расположенном в правой части страницы в виде закругленных кнопок, перечислены родительский элемент «около» и дочерний элемент «около 2».

Я уже нашел способ перечислить их и заставить ссылки работать с прокруткой (поведение параллакса)

Но то, как у меня есть жесткие коды родительской страницы. То, что я хотел бы сделать, это найти способ динамически получить идентификатор страницы, чтобы он не был жестко закодирован, но поскольку тема работает как сайт, состоящий только из одной страницы, это вызывает у меня проблемы.

Вот код, который у меня есть, может ли кто-нибудь помочь мне найти способ, с помощью которого код будет идентифицировать идентификатор каждой текущей страницы для перечисления главной и дочерней страниц?

Как видите, $parent = 13; жестко закодирован, а также включает в себя $pages = get_pages('hierarchical=0&include=13') ; с идентификатором hardcoded. Так что все страницы показывают одинаково. Я знаю, что могу создать условие с is_page для каждого жесткого кода, но идея в том, чтобы сделать его динамичным.

Любая помощь будет отличной!

Спасибо,

<?php 

$parent = 13;
$args= array(
    'parent' => $parent,
    'hierarchical' => 0
);

            $pages = get_pages('hierarchical=0&include=13') ;

            foreach ( $pages as $page ) {
                $new_title = str_replace( " ", "", strtolower( $page->post_name ) );    
                echo '<li><a href="#' . $new_title . '" title="' . $page->post_title . '">' . $page->post_title . '</a></li>';
            }

    $child_page_pages = get_pages($args);
    foreach ( $child_page_pages as $page ) {

                $new_title = str_replace( " ", "", strtolower( $page->post_name ) );    
                echo '<li><a href="#' . $new_title . '" title="' . $page->post_title . '">' . $page->post_title . '</a></li>';
            }

?>

1 Ответ

0 голосов
/ 17 сентября 2011

Чтобы получить идентификаторы родительской страницы поста, вы можете использовать get_post_ancestors( $post ), он должен вернуть родительский идентификатор.

$ReturnParents = get_post_ancestors($post->ID);

Еще один метод, который вы можете попробовать, - это глобальный $post.

global $post;
global $wp_query; 

    $thePostID = $wp_query->post->ID; 
    $myParent = $post->post_parent; 

    echo "I am post ". $thePostID . " and my parent is " . $myParent;  
...