5545 sujets

Sémantique web et HTML

Bonjour,

Je suis en train de créer un site de toute pièce, destiné à être utilisé sur Wordpress.
Je viens d'installer une extension pour avoir un diaporama (Slideshow CK) et ce diaporama est obtenu sous forme de shortcode, mais quand je l'insère dans ma page, ou dans mon html, j'ai uniquement le code qui s'affiche.
Après quelques recherches sur le net j'ai cru comprendre qu'il s'agissait de ma page function.php (qui n'existait pas) qui était la cause.

J'en ai donc créé une avec pour seul contenu :
<?php
if ( !is_admin() ) {
    add_filter('widget_text', 'do_shortcode', 11);
}
?>

Il semblerait que ce soit le code pour lire les shortcode, mais cela ne change rien du tout.
Est-ce qu'il me manque du code dans ma page function.php ?
Est-ce que j'ai besoin d'un autre code pour lire les shortcode ?
Est-ce que j'ai besoin d'appeler ma page function.php sur mes autres pages ?

Merci de vos réponses,
Julien
Hello Julien,

Ce plugin va sans doute te fournir un code entre crochets de ce type [slideshow param1="toto" param2="titi"].
Ce "shortcode" est à coller dans ton éditeur de texte d'une page ou d'un article.
Une fois l'article ou la page en question sauvegardé, ton shortcode sera converti en html.

La 2ème solution pour "rendre" un shortcode est plus technique.
Tu peux utiliser un shortcode directement dans dans un template .php de ton thème de cette manière :
echo do_shortcode( '[slideshow param1="toto" param2="titi"]' );

A coller à l'endroit où tu veux afficher ton slider.
Salut et merci de ta réponse,

Dans ta première méthode tu m'indique d'insérer le code directement dans mon article, mais cette méthode m'affiche directement le shortcode sans l'interpréter.
je suis passé par la deuxième méthode, j'ai inséré le code dans mon template page.php, mais j'ai due rajouter des balises php avant et après pour que le code n'apparaissent pas dans la page :
				<div id="diapo">
					<?php echo do_shortcode('[slideshowck id=66]');?>
				</div>

Mais cependant, le slideshow ne s'affiche toujours, j'ai l'impression que quelque chose manque dans mon thème perso.
Quand je test avec d'autres thèmes, pas de soucis, je peux copier le code dans un article et tout fonctionne.
Ok, donc quand tu changes de thème, le même shortcode au même endroit fonctionne bien, c'est ça ?

Ton plugin est bien activé (slideshowck) ?

Tu es parti d'une base pour ton propre thème ? C'est un thème enfant ?

Sinon, as-tu testé de créer un shortcode dans ton thème et de l'appeler dans une page ?
Dans ton fichier functions.php tu peux ajouter ces lignes pour tester :
//ajout d'un shortcode de test
function shortcode_test($atts, $content) {
	return 'Bravo, ça fonctionne !';
}
add_shortcode('test', 'shortcode_test');

Le shortcode à insérer est
[test]

Modifié par MatthieuR (05 Jan 2018 - 21:09)
Oui, quand j'ai mis un thème proposé par wordpress, le shortcode se lisait correctement.
Le plug in est bien activé.
Non j'ai créé entièrement le thème, les templates et la css, quand je me suis rendu compte que je n'avais pas de page function.php je me suis dit qu'il y avait peut être un problème ^^
pour ton code, j'ai due le modifier pour que le texte n'apparaisse pas :
<?php 
	function shortcode_test($atts, $content) {
		return 'Bravo, ça fonctionne !';
	}
	add_shortcode('test', 'shortcode_test');
?>

(viré le texte derrière les // et ajout des balises php)
et ensuite j'ai placé le shortcode dans mon div :
				<div id="diapo">
					<?php do_slideshowck(66); ?>
					[test]
				</div>


Mais il m'affiche toujours le shortcode et non pas le message "Bravo, ça fonctionne !"
Modifié par Jiloin (06 Jan 2018 - 01:16)
Le shorcode à insérer ([ test ]), est à insérer au travers du backoffice de WordPress, dans l'édition d'une de tes pages (ou d'un de tes articles)...
Quand tu modifies une page, tu saisies son titre, puis en dessous, tu as un éditeur de texte pour saisir le contenu de ta page ; c'est dans ce dernier que tu dois coller le shortcode.

Sinon, le fichier du thème ne s'appelle pas function.php mais bien functions.php et à chaque fois tu me dis que tu rajoutes les balises <?php et ?> mais il ne faut pas forcément les ajouter à chaque instructions ou fonction. Par exemple, dans ton fichier functions.php, tu ouvres ton fichier par <?php et c'est tout (même pas besoin de refermer avec ?> à la fin du fichier).

Si vraiment tu veux "rendre" ton shortcode dans un template (page.php, single.php, mon-template.php par exemple) il faut que tu l'écrives comme ça :
<?php echo do_shortcode( '[test]' ); ?>


Tu ré-essaies et tu me dis si ça fonctionne.

Sinon, ton fichier functions.php est long ? Tu peux coller son contenu ici ?
Ou bien il faudrait que tu vois si tu n'a pas une fonction qui filtre ton contenu ou qui supprime le support des shortcodes.
Tu peux tester en le renommant pour le désactiver.
Tu peux suivre cette discussion : https://wordpress.stackexchange.com/questions/84097/all-shortcodes-not-working-on-custom-theme

Dans le template dans lequel ton shortcode ne s'affiche pas correctement, tu affiches bien ton contenu avec la function <?php the_content(); ?> et non <?php echo get_the_content(); ?> ?
Modifié par MatthieuR (06 Jan 2018 - 23:05)