输出GET_HEADER的快捷代码不起作用

时间:2014-01-20 作者:Leo

我正在尝试创建一个短代码,它将输出我的一个模板头文件的内容。我在我的functions.php 文件

function zoo_header(){
  return \'test\'.get_header(\'navbar\');
}
add_shortcode(\'zoo-header\', \'zoo_header\');
并在我的模板中使用它:[zoo-header]do_shortcode(\'[zoo-header]\')

然而,短码的输出只是“test”
为什么我的标题导航栏的内容没有显示出来?

#header-navbar.php
<?php wp_nav_menu( array(
  \'theme_location\' => \'right-menu\',
  \'container\' => false,
  \'menu_id\' => \'navbar-right\',
  \'menu_class\' => \'nav navbar-nav navbar-right\'
)); ?>
<p>testing 123</p>
就好像get_header() 没有返回任何内容。我希望至少123测试会出现。。。

一点背景知识:我需要显示两个标题,我想让模板作者可以选择其中之一
我还尝试使用get_template_part(\'header\', \'navbar\') 没有成功。

1 个回复
最合适的回答,由SO网友:Gareth Gillman 整理而成

类似于以下内容的操作应该有效:

function my_header() {
    ob_start();
    include(get_template_directory() .\'/file.php\';
    $content = ob_get_clean();
    return $content;
}
add_shortcode(\'include\', \'my_header\');

结束

相关推荐

Custom templates folder

我创建了一个自定义文件夹(“/模板”),并将所有模板文件放在该文件夹中。而不是root(“/wp-content/themes/my-theme/”)。它工作得很好。我是否必须添加一些功能来指示“/模板/”文件夹作为我的模板文件夹?通常你把它们放在根上,对吗?现在一切正常,但我只是想知道是否有什么我必须做的。我找不到有关wordpress codex的任何信息。我刚刚安装了WPML,现在所有的模板页面都是404。我想知道它(自定义模板文件夹位置)是否会导致404页。因为吴宇森的商业页面显示良好。wc不在我