在主题文件夹内的自定义模板文件上不能使用快捷码javascript

时间:2017-08-09 作者:Hend Ry

我正在使用WordPress社交登录插件快捷码[wordpress_social_login].我想把它放在主题目录中的自定义模板文件中。

示例:

<?php 
/*
Template Name: Social Login Page
*/
echo do_shortcode(\'[wordpress_social_login]\');
因此,我使用此模板创建了一个空白页面,渲染正常,但按钮href变为javascript:void(0); 它不会重定向。

我想不出来,所以请帮忙。。

谢谢

2 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

你还没有包括get_header()get_footer() 在模板中。他们将加载收割台。php和页脚。php应该包括wp_head()wp_footer(). 最后两个函数很重要,因为这是加载脚本的地方。

如果您的短代码依赖于加载到页眉或页脚中的脚本,那么您需要wp_head()wp_footer(), 这就是插件加载脚本的地方。查看的代码this plugin (如果不是,请告诉我),然后加载脚本wp_head().

因此,您的模板至少需要如下所示:

<?php 
/*
Template Name: Social Login Page
*/
?>
<!DOCTYPE html>
<html>
<head>
    <?php wp_head(); ?>
</head>
<body>
    <?php echo do_shortcode(\'[wordpress_social_login]\'); ?>
</body>
</html>
看看插件代码,它在本地主机上工作的唯一方式是没有打开“弹出”功能,这需要脚本。

而且,即使您没有使用wp_head(), 你仍然需要<html>,<head>, 和<body> 标记必须是有效的HTML。

SO网友:Jignesh Patel

您使用的语法错误do_shortcode(). 检查do_shortcode() 第页了解更多信息。

echo do_shortcode[\'wordpress_social_login\'];
将其替换为:

echo do_shortcode(\'[wordpress_social_login]\');
试试看。我希望它有用。

结束

相关推荐

DO_SHORTCODE中的快捷码标签不起作用

我正在创建一个短代码,作为插件的一部分,我正在调用这样的模板:do_shortcode(\'[shortcodename title=\"monkeys\"]\'); 函数如下所示:function shortcodename_function($atts = []) { // stuff } 在函数内部,我试图在运行shortcode\\u atts之前打印出$atts,以确认它们在那里,但我什么也没有得到。这就像是完全忽略了我应用的属性。一旦我运行shortcode