将PHP模板与短代码结合使用

时间:2018-01-16 19:25:58

标签: php wordpress shortcode wordpress-shortcode

我使用的页面构建器不允许我插入PHP代码(仅限HTML)。但它会接受shordcodes。

由于我想要包含一个完整的自定义帖子类型区域,我尝试在单独的文件中添加自定义帖子类型循环,并使用短代码显示此文件中的代码。我想要包含的文件叫做team.php,从目录中找到/inc/team.php

我在另一个帖子上找到了这个代码片段,以添加到我的函数文件中,我已经添加了我的文件名,并根据注释说明调整了文件目录。

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文件中的代码。

我确定我在这里遗漏了一些简单的东西,但我似乎无法看到我出错的地方。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

好的,我发现答案是以下代码:

function get_team($atts) {
  ob_start();
  get_template_part('/inc/team');
  return ob_get_clean();
}
add_shortcode('display-team', 'get_team');

到目前为止,对我来说效果很好,除非有人有更好的解决方案吗?