Une chose que j’avais envie de faire depuis longtemps. Ca y est le plugin fonctionne correctement pour la traduction. J’en ai profité pour le traduire en français.
Les scripts que si nécéssaire
En revoyant un peu mon code je me suis rendu compte que j’ajoutais mon fichier js sur toutes les pages du site. Horreur. J’ai donc repris tout ça et maintenant le fichier js n’est ajouté que si le widget s’affiche sur la page en question.
Un lien en plus vers la page de réglages
Petit hook cool que j’ai trouvé ici. Cela ajoute un lien vers la page d’option du plugin (ou vers ce que vous voulez) sur la page qui liste vos plugins, à côté du lien « activé/désactivé ».
Une nouvelle fonction dans WordPress que j’ai découverte cette semaine (grâce à l’hebdo de wordpress-fr.net ), qui me semble trop cool et qui va me servir j’en suis sûr :
<?php antispambot( $emailaddy, $mailto ) ?>
Ca encode les lettres de vos mails en caractère HTML pour éviter de vous faire spammer. C’est malin.
Pour un projet j’ai dû jouer un peu avec la fonction bien pratique, native dans WordPress, des pages protégées par un mot de passe.
Comment activer la protection
Ca se passe dans la partie Publier des pages et articles. C’est une option de Visibilité. Cliquez sur Modifier et vous pouvez alors choisir trois visibilités : Public, protégé par un mot de passe et privé. Si vous choisissez protégé par un mot de passe il vous est demandé de choisir un mot de passe. Une fois celui ci choisi, il ne reste plus qu’à cliquer sur Ok et mettre à jour votre article ou page.
Modèle de page
Ma page était une page un peu particulière car elle affichait une liste de produits. Les produits étant des custom post type. En fait, si je n’avais pas eu besoin de protéger cette page par un mot de passe j’aurais utilisé le template d’archive de mon custom post type. Tout ça pour dire qu’après avoir créé mon modèle de page et l’avoir assigné à ma page protégée, la protection ne marchait plus. Bizarre.
J’ai donc entrepris quelques recherches sur comment marche cette protection et comment je pourrais la faire marcher dans mon modèle de page.
Il s’avère que cette protection filtre la fonction get_the_content(). Si le mot de passe n’a pas été rentré elle change le contenu par un formulaire, sinon la fonction renvoie bien le contenu de la page.
Mon problème c’est que je n’utilise pas cette fonction car j’affiche tout autre chose dans sur cette page. Heureusement, j’ai trouvé la fonction qui me permet de faire ce que je veux post_password_required() c’est cette fonction qui fait la vérification que le mot de passe a bien été renseigné par le visiteur. Je l’utilise donc comme suit :
Comme toujours avec WordPress il s’agit de trouver le bon filtre, voilà celui qui marche et comment l’utiliser
function remove_private_title( $title ) {
// Return only the title portion as defined by %s,
// not the additional
// 'Private: ' as added in core
return "%s";
}
add_filter( 'protected_title_format', 'remove_private_title' );
Modifier le formulaire
Encore une fois il s’agit de jouer avec un filtre WordPress
function custom_password_prompt($content) {
$output = $content . 'Et oui je suis protégé et personnalisé';
return $output;
}
add_filter('the_password_form', 'custom_password_prompt');
L’idée ici est de créer une chaine de caractère à retourner contenant le code HTML. IL ne faut pas faire d’affichage. Si vous ne voulez pas du tout utliser le contenu créé par WordPress vous devez juste créer au minimum un formulaire comme ceci pour que l’enregistrement du mot de passe fonctionne.
J’ai cherché comment ajouter simplement un bouton, pour un shortcode que j’avais créé, dans l’éditeur visuel de WordPress (TinyMCE). Ce sujet fait l’objet de plusieurs tutoriels très bien rédigés que j’ai mis en lien à la fin de l’article.
J’ai trouvé un bout de code pour ajouter simplement le bouton « next-page » dans l’éditeur visuel de WordPress. Je dois confesser que j’ai découvert cette fonction récemment. Le fait d’ajouter la balise « next-page » dans une page permet de créer une pagination au sein de celle-ci. On peut ainsi avoir le contenu de sa page sur plusieurs pages, autant que de balise ajoutée.
Merci à l’excellent blog d’Adobe Shadow la solution pour utiliser shadow en gardant ses virtual host existe. C’est le service xip.io qui le permet ! Je vous recommande donc la méthode décrite dans ce très bon article.