我正在尝试创建一个短代码,它将输出我的一个模板头文件的内容。我在我的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\')
没有成功。
最合适的回答,由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\');