当前菜单项无法使用$ childpages

时间:2016-03-22 11:47:01

标签: php wordpress class menu

我需要添加"有效"或"当前菜单项"类到自定义子页面菜单。我已经尝试过以下代码,但它似乎无法运作。

我浏览了谷歌,但找不到任何有用的东西!

<?php
$childpages = query_posts('orderby=menu_order&order=asc&post_type=page&post_parent=35&posts_per_page=300');
if ($childpages)
{
    // Display the children content
    foreach ($childpages as $post)
    {
        setup_postdata($post)
        ?>
        <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="mezzanine-sub-title <?php echo!empty($_GET['page_id']) && $_GET['page_id'] == $post->ID ? "active" : NULL ?>">
            <span><?php the_title(); ?></span>
            <a>
                <?php
                global $post;
                $src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), array(5600, 1000), false, '');
                ?>
                <div class="mezzanine-sub-image" style="background: url(<?php echo $src[0]; ?> );border:<?php the_field('border'); ?>;">
                </div>
            </a>
        </a>
        <?php
    }
}
?>

提前致谢

1 个答案:

答案 0 :(得分:1)

query_posts更改为get_posts您的<a>代码的语法也无效。

最后使用$get

而不是使用未返回任何内容的wp_query

所以你的代码应该是:

$childpages = get_posts('orderby=menu_order&order=asc&post_type=page&post_parent=35&posts_per_page=300');
    if ($childpages)
    {
        // Display the children content
        foreach ($childpages as $post)
        {
            setup_postdata($post)
            ?>
            <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="mezzanine-sub-title<?php if ( $post->ID == $wp_query->post->ID ) { echo ' active'; }?>">
                <span><?php the_title(); ?></span>
                    <?php
                    $src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), array(5600, 1000), false, '');
                    ?>
                    <div class="mezzanine-sub-image" style="background: url(<?php echo $src[0]; ?> );border:<?php the_field('border'); ?>;">
                    </div>

            </a>
            <?php
        }
    }