php in a shortcode

时间:2015-11-05 作者:Chris Pink

我在大型网站上遇到的一个主要问题是模板的数量。所以我想我可以使用一个短代码调用页面中的可选页脚。

function trainer_footer( ){
 get_footer(\'rctrainer\');
}
add_shortcode( \'trainer\', \'trainer_footer\' ); 
这是可行的。

但有两个问题;

侧边栏trainer的内容显示在内容的顶部,而不是短代码的位置。为什么?

我读过,把PHP写进这样的短代码不是一个好主意。为什么?

2 个回复
SO网友:s_ha_dum

首先,get_footer() 旨在加载页面级模板文件,而不是发布级模板文件。您应该使用get_template_part()取而代之的是the_content. 根据所有过滤器的规范,他们应该return 内容,而不是echo 信息技术echoingcontent将产生您所看到的效果。显然,您正在加载的模板文件使用的是短代码将字符打印到屏幕上,而不是return按应该的方式排列字符串echo staticstrings——例如,看看核心库的短代码。要做到这一点,需要PHP

SO网友:Bruno Cantuaria

可能是因为没有闭合的div或CSS。您必须检查页面的源代码。

有一种很好的做法(也是为了避免问题)是返回短代码内容,而不是直接输出它(这是get\\u footer()所做的)。

除此之外,我真的不认为你应该用短码来称呼页脚。我可以看到很多比这更好的方法:使用元字段、页面模板,甚至使用基本的ID比较。

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗