将 PHP 模板与简码组合
Combining a PHP template with a shortcode
我使用的页面构建器不允许我插入 PHP 代码(仅 HTML)。但它会接受简码。
因为我想包含一个完整的自定义 post 类型区域,所以我尝试在一个单独的文件中添加自定义 post 类型循环,并使用短代码显示其中的代码文件。我要包含的文件名为 team.php 并且在目录中位于 /inc/team.php
我在另一个 post 上找到了这个代码片段以添加到我的函数文件中,我添加了我的文件名并按照注释说明调整了文件目录。
add_shortcode('include', 'include_php_file');
function include_php_file($atts=array(), $content='') {
$atts = shortcode_atts(array(
'file' => ''
), $atts);
if(!$atts['file']) return 'team.php'; // needs a file name!
$file_path = dirname(__FILE__).'/inc/'.$atts['file']; // adjust your path here
if(!file_exists($file_path)) return '';
ob_start();
include($file_path);
$html = ob_get_contents();
ob_end_clean();
return $html;
}
制作短代码:[include file='team.php']
(我认为!)...
我希望这是解决方案,但它似乎没有在我的 team.php 文件中输出代码。
我确定我在这里遗漏了一些简单的东西,但我似乎看不出哪里出错了。任何帮助将不胜感激!
好的,我发现答案是以下代码:
function get_team($atts) {
ob_start();
get_template_part('/inc/team');
return ob_get_clean();
}
add_shortcode('display-team', 'get_team');
到目前为止对我来说效果很好,除非有人有更好的解决方案?
我使用的页面构建器不允许我插入 PHP 代码(仅 HTML)。但它会接受简码。
因为我想包含一个完整的自定义 post 类型区域,所以我尝试在一个单独的文件中添加自定义 post 类型循环,并使用短代码显示其中的代码文件。我要包含的文件名为 team.php 并且在目录中位于 /inc/team.php
我在另一个 post 上找到了这个代码片段以添加到我的函数文件中,我添加了我的文件名并按照注释说明调整了文件目录。
add_shortcode('include', 'include_php_file');
function include_php_file($atts=array(), $content='') {
$atts = shortcode_atts(array(
'file' => ''
), $atts);
if(!$atts['file']) return 'team.php'; // needs a file name!
$file_path = dirname(__FILE__).'/inc/'.$atts['file']; // adjust your path here
if(!file_exists($file_path)) return '';
ob_start();
include($file_path);
$html = ob_get_contents();
ob_end_clean();
return $html;
}
制作短代码:[include file='team.php']
(我认为!)...
我希望这是解决方案,但它似乎没有在我的 team.php 文件中输出代码。
我确定我在这里遗漏了一些简单的东西,但我似乎看不出哪里出错了。任何帮助将不胜感激!
好的,我发现答案是以下代码:
function get_team($atts) {
ob_start();
get_template_part('/inc/team');
return ob_get_clean();
}
add_shortcode('display-team', 'get_team');
到目前为止对我来说效果很好,除非有人有更好的解决方案?