我已经在主题functions.php文件中创建了一个函数,以便在层次结构中进行更深层次的导航时,从父页面的级别保留子页面列表。
我的问题是,当我在page.php主题文件中调用该函数时,我什么也page.php

的functions.php:

function get_top_parent_children($the_id,$start = 0,$walk = null){

    $current_post = get_post($the_id);
    $walk[] = $current_post;

    if($current_post->post_parent){
        get_top_parent_children($current_post->post_parent,$start,$walk);
    } else {
        $output = array_reverse($walk);
        return get_children($output[$start]->ID);
    }
}

page.php文件:

<?php get_header(); ?>
<div id="primary" class="clearfix">

    <div id="content">
        <?php the_post(); ?>
        <?php $children = get_top_parent_children($id,1); ?>
        <?php if ( $children ) { ?>
            <section id="post-topic">
                <h2><?php the_title() ?> Topics</h2>
                <ul class="clearfix">
                    <?php foreach( $children as $child){ ?>
                        <li>
                            <a href="<?php echo get_permalink($child->ID) ?>"> <?php echo child->post_title ?> </a>
                        </li>
                    <?php }; ?>
                </ul>
            </section>
        <?php }; ?>
        <?php get_template_part( 'content', 'page' ); ?>
    </div>
    <aside>
        <?php dynamic_sidebar('Page Sidebar'); ?> 
    </aside>
</div>
<?php get_footer(); ?>

===============>>#1 票数:4 已采纳

我猜你忘了第二次return 您有一个带有两个代码路径的if ,但是仅在最后一个中返回一个值。 你需要:

if($current_post->post_parent){
    return get_top_parent_children(...);
   # ^^^^
} else {
    return get_children(...);
}

当条件匹配时,您的函数正在(递归)调用自身。 但是您仍然需要指示PHP将其值传递给外部调用。

  ask by Jason Waldrip translate from so

未解决问题?本站智能推荐:

2回复

使用functions.php中的函数创建Wordpress简码

我尝试创建的简码应返回如下所述的1匈牙利语单词,此名称应逐月更改。 该代码已放置在functions.php中,并且在页面或帖子中使用简码时不返回任何内容。 任何帮助将非常感激。 当通过使用echo honapnev($honap);作为简单的php和html时,它确实可以工作echo h
2回复

从functions.php内调用函数返回不需要的值

当我从functions.php文件中调用下面的评论计数功能时,即使帖子中有评论,我也会得到“ 0”。 当我从另一个页面模板( <?php echo fb_comment_count(); ?> )调用该函数时,将显示正确的注释编号。 我尝试调试以检查fb_comment_c
1回复

从Forms中的Functions.php执行函数

我正在构建一个显示某些user_meta数据的表单,我希望能够在表单提交时更新此usermeta。 这就是我现在所拥有的; 但事情是在页面加载时更新用户元的php,我只希望它在用户预先存储时执行。
2回复

WordPress的ajax没有在functions.php中调用函数

我在前端写了一个ajax调用。 我在functions.php中写了服务器端 我的jQuery如下 但是,从ajax调用返回的数据始终为“ 0”,当我搜索它时,人们会说我的函数未加载到wordpress中。 我不明白该怎么办。
2回复

查询functions.php中的函数?

我有一个jQuery代码,用于检查用户何时靠近页面底部。 但这不是问题所在。 这个jQuery将发送一个AJAX请求,给出一些关于当用户靠近页面底部时要加载的内容的细节。 目前代码看起来有点像这样: 我的主要问题是我不知道要查询什么或如何将信息发送到functions.php中的P
1回复

functions.php中的循环

我正在使用functions.php中的循环,并且我知道循环无法正常工作。 我是否需要全球化? 我环顾四周,但不确定。 这是我的功能: 我正在使用此代码调用AJAX请求,因此它返回NULL响应。 这使我相信循环在函数内不起作用。
1回复

如何在主题functions.php中定义和使用辅助函数?

如何让以下在Wordress Theme functions.php文件中正常工作? 我还没想出如何在主题的functions.php文件中使top函数可用于bottom函数。 我没有抓住如何设置挂钩,以便它们可以一起工作。 谢谢。 过滤器/助手/ whateveryoucall
2回复

如何在functions.php wordpress中调用php函数

我的functions.php中有很多函数,需要直接在functions.php中调用它们。 我以这种方式这样做,但是以这种方式调用函数时,管理面板开始非常缓慢地工作:
1回复

functions.php中自定义函数中缺少参数

这与使用Woocommerce的Wordpress网站有关。 我的服务器错误日志记录了访问某个页面的每个IP的此错误: 错误:PHP警告:第239行上“ filepath” /functions.php中的elixa_woo_hide_in_loop()缺少参数2 这是代码:
4回复

如何在Wordpress的functions.php中编写Javascript函数?

我正在根据开发人员的建议更改插件( 请参阅最新文章 ),该建议建议在Wordpress的functions.php中编写一些Javascript。 现在,当我这样做时,我的整个wordpress变成了空白。 好了,经过一番思考。“您不能在PHP内编写纯Javascript”。 因此