шорткод javascript не работает с файлом пользовательского шаблона внутри папки темы
Я использую шорткод плагина для входа в социальную сеть WordPress [wordpress_social_login]
.
Я хочу поместить его в файл пользовательского шаблона внутри каталога тем.
Пример:
<?php
/*
Template Name: Social Login Page
*/
echo do_shortcode('[wordpress_social_login]');
Поэтому я создаю пустую страницу с помощью этого шаблона, рендеринг в порядке, но кнопка href становится javascript:void(0);
, и она не перенаправляется.
Я не могу в этом разобраться, поэтому, пожалуйста, помогите..
Спасибо
2 answers
Вы не включили get_header()
или get_footer()
в свой шаблон. Они будут загружаться header.php и footer.php который должен включать wp_head()
и wp_footer()
. Эти последние две функции важны, потому что именно там загружаются сценарии.
Если ваш шорткод зависит от сценария, загружаемого в верхний или нижний колонтитул, то вам необходимо wp_head()
или wp_footer()
, вот где плагины загружают свои скрипты. Глядя на код для этого плагина (скажите мне, если это не так), то скрипт для него загружается в 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.
Вы используете неправильный синтаксис do_shortcode()
. Проверить do_shortcode()
страница для получения дополнительной информации.
echo do_shortcode['wordpress_social_login'];
Замените его следующим:
echo do_shortcode('[wordpress_social_login]');
Попробуйте. Я надеюсь, что это полезно.