Fermer

septembre 30, 2020

Créer automatiquement des barres latérales pour chaque catégorie »Zone Martech


J'ai simplifié ce site pour améliorer les délais et tenter de mieux monétiser le site sans irriter mes lecteurs. Il y a plusieurs façons dont j’ai monétisé le site… ici, elles sont des plus lucratives aux moins lucratives:

  • Sponsoring direct d’entreprises partenaires. Nous travaillons sur des stratégies collectives qui intègrent tout, des webinaires aux partages sur les réseaux sociaux pour promouvoir leurs événements, produits et / ou services.
  • Marketing d'affiliation à partir d'un éventail de plateformes d'affiliation. Je parcourt et identifie les entreprises, je m'assure qu'elles sont réputées et je partage des articles spécifiques que j'écris ou des publicités qu'elles fournissent. livres blancs .
  • Bannière publicitaire de Google où les publicités pertinentes sont automatiquement dispersées dans mon modèle et mon contenu.

Barres latérales WordPress

Le marketing d'affiliation fournissant des revenus décents, j'ai décidé que je voulais mettre en avant des annonceurs très spécifiques en fonction de la catégorie du site, j'ai donc voulu créer dynamiquement les barres latérales sans avoir à coder en dur chaque barre latérale sur le site. De cette façon, si j'ajoute une catégorie – la barre latérale apparaît automatiquement dans ma zone Widget et je peux ajouter une publicité.

Pour ce faire, j'avais besoin d'un code spécifique dans le fichier functions.php de mon thème enfant. Heureusement, j'ai trouvé que quelqu'un avait déjà écrit presque tout ce dont j'avais besoin: Créer des barres latérales widgets pour chaque catégorie dans WordPress . Je voulais juste quelques contrôles supplémentaires sur les catégories dans lesquelles je souhaite afficher les barres latérales.

 function add_category_sidebars () {
    $ args = tableau (
        'type' => 'publier',
        'orderby' => 'nom',
        'order' => 'ASC',
        'hide_empty' => 1,
        'hierarchical' => 1,
        'exclude' => '',
        'include' => '',
        'nombre' => '',
        'taxonomy' => 'catégorie'
        );
    
    $ categories = get_categories ($ args);

    foreach ($ categories as $ category) {
        if (0 == $ catégorie-> parent)
            register_sidebar (tableau (
                'name' => $ category-> cat_name,
                'id' => $ category-> nom_nique_catégorie. '-sidebar',
                'description' => 'Ceci est le'. $ category-> nom_cat. 'zone widgetisée',
                'before_widget' => '',
                'before_title' => '

', 'after_title' => '

', )); } } add_action ('widgets_init', 'add_category_sidebars');

Avec le tableau d'arguments pour récupérer des catégories, je peux inclure et exclure toutes les catégories que je souhaite cibler. Dans la déclaration foreach, je peux modifier et faire correspondre la mise en page à la mise en forme générale de la barre latérale de mon site WordPress.

De plus, dans mon functions.php je veux ajouter une fonction pour voir si une barre latérale existe et a un widget ajouté:

 function is_sidebar_active ($ cat_name) {
    global $ wp_registered_sidebars;
    $ cat_id = get_cat_ID ($ cat_name);
    $ widgetlist = wp_get_sidebars_widgets ();
    if ($ widgetlist [$cat_id])
        retourne vrai;
    retourner faux;
} 

Ensuite, dans le fichier de modèle de la barre latérale de mon thème, j'ajoute du code pour afficher dynamiquement la zone si la barre latérale est enregistrée et contient un widget.

 $ queried_object = get_queried_object ();
if ($ queried_object) {
    $ post_id = $ queried_object-> ID;
}
if (is_category () || in_category ($ cat_name, $ post_id)) {
    $ sidebar_id = sanitize_title ($ cat_name);
    if (is_sidebar_active ($ sidebar_id)) {
        dynamic_sidebar ($ sidebar_id);
    }
} 

Barres latérales WordPress pour chaque catégorie

Le résultat est exactement ce que je voulais:

 Barres latérales du widget WordPress pour chaque catégorie

Maintenant, que j'ajoute ou non, modifiez , ou supprimez des catégories… mes zones de la barre latérale seront toujours à jour!




Source link