PHP Include仅在我的自定义可湿性粉剂主题中的某些地方有效

时间:2016-12-26 作者:CandyPaintedRIMS

我正在使用自定义WP主题构建网站,我一直在使用:

<?php include(\'header-bar.php\'); ?> 
以便在每个页面上包含导航栏。我故意没有把导航放在标题中。php文件,因为我不需要在每个页面上都使用它。

这段代码在某些地方运行良好,但在其他地方却失败了。

它适用于以下场景:

<?php get_header(); ?>


  <div class=\'main-content\'>

  <?php include(\'header-bar.php\'); ?>

    <div class=\'container\'>

            <?php 

                if ( have_posts() ) : while ( have_posts() ) : the_post();

                    get_template_part( \'content\', get_post_format() );

                endwhile; endif; 
            ?>
    </div>
</div>


<?php get_footer(); ?>
但在这种情况下,它神秘地失败了:

<?php 



/*
Template Name: Contact
*/


?>

<?php get_header(); ?>


<div class=\'main-content\'>

  <?php include(\'header-bar.php\'); ?>

    <div class=\'container\'>

            <?php 

                if ( have_posts() ) : while ( have_posts() ) : the_post();

                    get_template_part( \'content\', get_post_format() );

                endwhile; endif; 
            ?>

    </div>
</div>


<?php get_footer(); ?>
在第二个场景中,页面正确显示,除了“标题栏”。php的代码,但找不到。我所做的似乎“打断”这行代码的更改是通过添加模板名称。有谁能解释一下为什么会这样?我很困惑。

提前感谢!心肺复苏术

2 个回复
最合适的回答,由SO网友:AddWeb Solution Pvt Ltd 整理而成

你好,CandyPaintedRIMS,

请尝试get_template_part() 函数将任何文件包含到自定义模板中。

Your code:

<?php include(\'header-bar.php\'); ?>

It should be replaced with:

<?php get_template_part( \'header-bar\' ); // include header-bar.php ?>
希望这对你有帮助。

非常感谢。

SO网友:Tunji

对于标题,应使用get_header 作用

Your code:

<?php include(\'header-bar.php\'); ?>

Should be replace with:

<?php get_header( \'bar\' ); ?>
Theget_header 函数使用locate_template 其中:

在TEMPLATEPATH和wp includes/theme compat之前的STYLESHEETPATH中进行搜索,以便从父主题继承的主题可以只重载一个文件。

并且还具有使用默认值的回退header.php 文件在任何情况下都找不到指定的标头。