0

我正在创建一个具有视差功能和 html5 的 wordpress 主题,主页有所有主页和两种不同类型的导航。

主要的一个,是父页面的导航。所以我有关于、项目和联系方式。

但是每个页面都有子页面。关于页面在其下方有一个子页面,但由于我无法从主菜单访问,因此每个具有子页面或子页面的页面都有第二种类型的菜单。

还有项目,有不同的页面:“项目”(主)、“设计”(子)、咨询(子)等。

作为圆形按钮放置在页面右侧的第二个菜单列出了父级“about”和子级“about 2”。

我已经想出了一种方法来列出这些并让链接的行为与滚动到(视差行为)

但是,我硬编码父页面的方式。我想做的是找到一种方法来动态获取页面ID,这样它就不会被硬编码,但是由于主题作为一个只有一页的网站,它让我遇到了麻烦。

这是我拥有的代码,谁能帮我找到一种方法,以便代码识别每个当前页面的 ID 以列出主页面和子页面?

如您所见$parent = 13;,它是硬编码的,并且它也包含$pages = get_pages('hierarchical=0&include=13') ;硬编码的 id。所以所有页面都显示相同。我知道我可以为每个硬编码创建一个带有 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>';
            }

?>
4

1 回答 1

0

要获取发布父页面 ID,您可以使用get_post_ancestors( $post )它应该返回父 ID。

$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;  
于 2011-09-17T05:53:56.560 回答