我正在为我的WP网站使用一个主题,它有自己的注册页面模板(register.php)。我正在尝试创建一个快捷码,可以在任何地方加载该模板,但我无法使其正常工作。
这是我尝试过的一件事:
function my_BP_registration_form_shortcode( $atts ) {
ob_start();
get_template_part( \'register\' );
return ob_get_clean();
}
add_shortcode( \'my_BP_registration_form\', \'my_BP_registration_form_shortcode\');
这是我尝试过的另一件事:
function my_BP_registration_form_shortcode( $atts ) {
include(\'/full/path/to/template/register.php\');
}
add_shortcode( \'my_BP_registration_form\', \'my_BP_registration_form_shortcode\');
这两件事都不管用。也许我在这方面完全错了,我只是想在默认WP注册页面之外显示注册表。
顺便说一句,这个短代码工作得很好,我可以把它放在任何我想放的地方,它会加载我放在代码中的任何内容,而不是我想要的模板。如果模板来自使用Buddypress的主题,那么它会对模板有所帮助。
编辑:需要指出的是,我尝试使用的模板位于plugins文件夹(Buddypress插件)中。我尝试将该模板复制到我的主题文件夹中,虽然文件加载很好,但效果不好,因为我假设它所依赖的Buddypress依赖项没有从该位置正确加载
SO网友:Fernando Baltazar
第一个代码调用模板寄存器。php此文件需要位于主题的根目录中,如果没有定义,则为模板部分定义一个子目录,如/部分/加载项/包括/模板/循环等。如果将其更改为\'register\' in the add shortcode line, 然后你可以叫它[注册]示例
function my_BP_registration_form_shortcode( $atts ) {
ob_start();
get_template_part( \'register\' );
return ob_get_clean();
}
add_shortcode( \'register\', \'my_BP_registration_form_shortcode\');
在学习如何使用短代码时,尽量少用行,缩短名称
function register_form( $atts ) {
ob_start();
get_template_part( \'register_form\' );
return ob_get_clean();
}
add_shortcode( \'register_form\', \'register_form\');
请注意,几乎都有相同的名字,所以在学习时,你很少会出错;只需避免使用主题已经为函数激活的名称即可。您的文件也可以重命名为register\\u form。php