我为我的主题创建了一个短代码,它会在页面/帖子中添加一个组合。因为组合的代码很长很复杂,所以我把它放在一个单独的文件中,并尝试使用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
任何人都可以指出我在哪里出错
答案 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,了解此功能尝试包含的文件的顺序。