Wordpress将get_template_part添加到短代码php中

时间:2014-05-06 14:26:45

标签: php wordpress shortcode

我为我的主题创建了一个短代码,它会在页面/帖子中添加一个组合。因为组合的代码很长很复杂,所以我把它放在一个单独的文件中,并尝试使用get_template_part从我的shortcodes.php文件中调用它。

以下是我目前的代码:

function portfolio_new($atts) 
{        
ob_start();  
get_template_part('/includes/shortcode_helpers/portfolio', 'shortcode');  
$ret = ob_get_contents();  
ob_end_clean();  
return $ret;    
}

add_shortcode('portfolio_new', 'portfolio_new');

然而,这没有任何回报。我的文件包含组合php位于incudes / shortcode_helpers / portfolio_shortcode.php

任何人都可以指出我在哪里出错

1 个答案:

答案 0 :(得分:1)

您需要将模板文件重命名为portfolio-shortcode.php(使用短划线而非下划线)。 get_template_part正在检查以下文件:

{current_theme}/includes/shortcode_helpers/portfolio-shortcode.php

您还需要更改get_template_part的第一个参数以删除前导斜杠:

get_template_part('includes/shortcode_helpers/portfolio', 'shortcode');

请参阅WordPress Codex上的get_template_part,了解此功能尝试包含的文件的顺序。