web-dev-qa-db-fra.com

le shortcode javascript ne fonctionne pas sur le fichier de modèle personnalisé dans le dossier du thème

J'utilise le plugin de connexion sociale WordPress shortcode [wordpress_social_login]. Je veux le mettre dans un fichier de modèle personnalisé dans le répertoire du thème.

exemple:

<?php 
/*
Template Name: Social Login Page
*/
echo do_shortcode('[wordpress_social_login]');

donc je crée une page vierge en utilisant ce modèle, le rendu est correct mais le bouton href devient javascript:void(0); et il ne sera pas redirigé.

je ne peux pas comprendre cela, alors s'il vous plaît aider ..

Merci

1
Hend Ry

Vous n'avez pas inclus get_header() ou get_footer() dans votre modèle. Ils chargeront les fichiers header.php et footer.php, lesquelsdevraientinclude wp_head() et wp_footer(). Ces deux dernières fonctions sont importantes car c’est là que les scripts sont chargés.

Si votre shortcode dépend du chargement d'un script dans l'en-tête ou le pied de page, alors vousneedwp_head() ou wp_footer(), où les plugins chargent leurs scripts. En regardant le code pour ce plugin (dites-moi si ce n'est pas ça), alors le script pour cela se charge dans wp_head().

Donc, à tout le moins, votre modèle doit ressembler à ceci:

<?php 
/*
Template Name: Social Login Page
*/
?>
<!DOCTYPE html>
<html>
<head>
    <?php wp_head(); ?>
</head>
<body>
    <?php echo do_shortcode('[wordpress_social_login]'); ?>
</body>
</html>

En regardant le code du plugin, la seule façon dont cela aurait pu fonctionner sur votre hôte local est de ne pas avoir activé la fonctionnalité "popup", qui nécessite le script.

De même, même si vous n'utilisez pas wp_head(), vous avez toujours besoin des balises <html>, <head> et <body> pour être valide HTML.

1
Jacob Peattie

vous utilisez une syntaxe incorrecte de do_shortcode(). Vérifiez do_shortcode() page pour plus d’informations.

echo do_shortcode['wordpress_social_login'];

Remplacez-le par ceci:

echo do_shortcode('[wordpress_social_login]');

l'essayer J'espère que c'est utile.

1
Jignesh Patel