WordPress, mettre un avertissement sur vos billets pour adultes
Non webinventif ne va pas devenir un blog de fesses ! (Je sens qu'il y a des déçus là) 😉
Mais en regardant un peu les mots clés qui mènent à ce blog, je me rend compte qu'il y a une question qui revient régulièrement, à savoir "Comment mettre un avertissement sur une catégorie de billets ?"
Je vais donc y répondre en vous montrant les différentes possibilités pour un blog tournant sous WordPress. Bien évidement, là je pars du principe que l'avertissement est pour une catégorie "adulte", mais vous pourriez tout aussi bien vous en servir pour autre chose 😉
Alors pour l'avertissement, j'ai choisi une simple boite de confirmation en javascript avec un bouton pour confirmer ou pour annuler. Vous pouvez bien évidement adapter ça par tout autre fonction javascript, comme par exemple cet excelent plugin pour jQuery !
Script
Placez le script suivant dans le fichier "functions.php" de votre thème (si pas, créez le) ou alors carrément dans un nouveau plugin.
# Alerte pour billets adultes
########################################################
function censored_post(){
global $wp_query;
$goquery = $wp_query->post;
if ( (in_category(16) || get_post_meta($goquery->ID, 'xxx', true) || preg_match("|sexy|", $goquery->post_title)) && is_single() ) {
?>
<!-- Inclusion auto -->
<script type="text/javascript">
<!--
if (!confirm("Ceci est une section pour adultes !nVoulez-vous y acceder ?")) {
window.location.href = "<?php bloginfo('url'); ?>";
}
-->
</script>
<!-- /Inclusion auto -->
<?php
}
}
add_action('wp_head', 'censored_post');
Explications
Ce script va injecter le code javascript dans le header de votre blog selon plusieurs conditions.
- Il faut que le billet soit dans la catégorie "16" (
in_category(16)
) (à changer par l'ID de votre catégorie Adulte) -> voir la capture - Ou alors que le billet comporte un champs personnalisé nommé "xxx" (
get_post_meta($goquery->ID, 'xxx', true)
) -> voir la capture - Ou alors que le billet comporte le terme "sexy" dans son titre (
preg_match("|sexy|", $goquery->post_title)
) -> voir la capture - Et enfin, il faut impérativement que la page affichée soit du type billet (
is_single()
)
Voilà, donc si vous appuyez sur ok, la page s'affiche, et sinon vous êtes redirigez vers la page d'accueil du blog !
Plus loin
Pour ceux qui préfère mettre le javascript en fin de page plutôt que dans le header, c'est déconseillé dans ce cas précis ! Sinon l'avertissement ne s'afficherait qu'une fois la page chargée (donc visible) ce qui n'as aucun sens !
Depuis la version 2.6 de wordpress, il est aussi possible d'identifier les tags du billet courant grâce à la fonction has_tag('montag')
. En partant de ce principe, on pourrait aussi ajouter cette condition pour l'affichage de l'avertissement. Mais cette fonction n'est (pour l'instant) utilisable que dans la boucle (loop), donc pour la rendre fonctionnelle, il faut injecter notre javascript non pas dans le header, mais directement dans le billet. Du coup je préconise d'appeler la fonction d'injection manuellement directement après le début de la boucle:
La nouvelle fonction avec prise en charge du tag "sexy":
# Alerte pour billets adultes
########################################################
function censored_post(){
global $wp_query;
$goquery = $wp_query->post;
if ( (in_category(16) || get_post_meta($goquery->ID, 'xxx', true) || has_tag('sexy') || preg_match("|sexy|", $goquery->post_title)) && is_single() ) {
?>
<!-- Inclusion auto -->
<script type="text/javascript">
<!--
if (!confirm("Ceci est une section pour adultes !nVoulez-vous y acceder ?")) {
window.location.href = "<?php bloginfo('url'); ?>";
}
-->
</script>
<!-- /Inclusion auto -->
<?php
}
}
Ensuite dans votre fichier single.php. Après ceci:
Ajoutez ceci:
Mais la 1ère solution reste la plus propre et efficace !
Conclusions
Le cul, c'est bien !
-----
Pingback: Les billets de la semaine #9 | Le blog de Yohann CIURLIK | Spawnrider.Net :: Blog()