WordPress : Afficher des catégories aléatoires sur la page d’accueil (Fonctions de recherche et d’édition de thème)

Publié par Jean-Michel le

Je suis actuellement dans les étapes alpha de l’édition d’un thème enfant pour un thème WordPress. J’ai de l’expérience en programmation et une certaine expérience de la gestion de wordpress, mais aucune expérience directe dans l’édition de code lié à wordpress. À l’heure actuelle, il affiche actuellement les trois premières catégories par ordre alphabétique.

Ce que j’essaie de faire : Au lieu d’afficher les trois premières catégories par ordre alphabétique, j’aimerais afficher 3 catégories aléatoires avec plus de x nombre de produits.

J’ai rencontré les obstacles/questions suivants m’empêchant de continuer.

  1. Quel mécanisme/fonction contrôle la sélection de ces catégories ? (LeurCode)
  2. Est-ce basé sur un thème ou quelque chose dans le système WordPress sous-jacent ?
  3. Quelles autres informations seraient pertinentes pour effectuer ce changement ?
  4. Quelles informations seraient utiles dans la barre de développement de Firefox ?
  5. Comment puis-je trouver « LeurCode » pour le remplacer par « MonCode » ?

La vraie question ici est la suivante : comment puis-je trouver « TheirCode » qui est responsable de cette sélection à l’aide d’outils tels que firefox Dev Bar et la source réelle ?

Cette question ne concerne pas WooCommerce (le plugin). Je cherche un moyen de trouver une fonction dans un thème conçu par WooCommerce (la société) ou dans n’importe quel thème.

Thème Opensource : WooCommerce Storefront

Solution n°1 trouvée

La vraie question ici est la suivante : comment puis-je trouver « TheirCode » qui est responsable de cette sélection à l’aide d’outils tels que la barre de développement firefox et la source réelle ?

Si vous faites référence à la sortie/source HTML, par exemple sur le site officiel de démonstration du thème Storefront, faites simplement un clic droit sur l’en-tête ou la section « Catégories de produits » et vous pourrez ensuite facilement l’inspecter section. Consultez la documentation MDN pour d’autres options telles que l’icône « Sélectionner un élément ».

entrez la description de l'image ici

Maintenant, pour la  » source réelle  » (c’est-à-dire le code ou la fonction PHP qui génère la section « Catégories de produits » sur les pages utilisant le modèle « Page d’accueil »), vous pouvez la trouver dans inc/storefront-template-functions.php.

if ( ! function_exists( 'storefront_product_categories' ) ) {
    /**
     * Display Product Categories
     * Hooked into the `homepage` action in the homepage template
     *
     * @since  1.0.0
     * @param array $args the product section args.
     * @return void
     */
    function storefront_product_categories( $args ) {

        if ( storefront_is_woocommerce_activated() ) {

            $args = apply_filters( 'storefront_product_categories_args', array(
                'limit'             => 3,
                'columns'           => 3,
                'child_categories'  => 0,
                'orderby'           => 'name',
                'title'             => __( 'Shop by Category', 'storefront' ),
            ) );

            ...
        }
    }
}

Il storefront_product_categories()en va de même pour la fonction PHP que vous recherchez et que vous pouvez complètement remplacer si vous le souhaitez (voir https://docs.woocommerce.com/document/set-up-and-use-a-child-theme/# article-5). Mais si vous souhaitez simplement afficher les catégories de produits dans un tri aléatoire, vous pouvez simplement utiliser le storefront_product_categories_argspour filtrer les arguments de la requête (qui dans votre cas serait orderby):

add_filter( 'storefront_product_categories_args', function( $args ){
    $args['orderby'] = 'rand';
    return $args;
} );

Ce filtre est appelé depuis la storefront_product_categories()fonction, et voici les autres filtres/actions que vous pouvez utiliser :

  • Filtre:storefront_product_categories_shortcode_args

  • Action:storefront_homepage_before_product_categories

  • Action:storefront_homepage_after_product_categories_title

  • Action:storefront_homepage_after_product_categories

Voir ceci si vous n’êtes pas sûr des différences entre une « action » et un « filtre ».


MISE À JOUR : Comment avez-vous pu trouver le code ?

Parcourez la documentation du thème Storefront :

  • Page d’accueil « actions »

  • Fonctions du modèle de vitrine

  • Vérifiez l’exemple des filtres de vitrine : modifiez le nombre de produits affichés par page .

Je cherche un moyen de trouver une fonction dans un thème conçu par WooCommerce (la société) ou dans n’importe quel thème.

  • Tout d’abord, vérifiez (et lisez) la documentation du thème.

  • Si aucune ou si vous n’avez pas/n’avez pas pu trouver les informations dont vous aviez besoin, essayez ce que @motivast avait suggéré — Inspectez les éléments de la page, trouvez le code HTML et/ou CSS class/ approprié id, puis recherchez les fichiers de thème pour cela HTML ou CSS class/ idjusqu’à ce que vous trouviez le bon fichier ou code PHP/ function.

Par exemple, sur le site de démonstration du thème Storefront, le code HTML de la section des catégories de produits est :

<section class="storefront-product-section storefront-product-categories" aria-label="Product Categories">
    ...
</section>

Vous pouvez donc rechercher les fichiers de thème en utilisant l’un de ces mots-clés : (je commencerais par la correspondance la plus spécifique ou la plus proche du code HTML généré)

  • <section class="storefront-product-section storefront-product-categories"

  • class="storefront-product-section storefront-product-categories"

  • storefront-product-categories

  • storefront-product-section

En supposant que vous ne connaissiez pas la documentation Storefront/theme, effectuer les recherches ci-dessus vous amènerait éventuellement au bon fichier ou code PHP/ function.

Si vous avez besoin d’aide supplémentaire, faites-le moi savoir et je mettrai à jour cette réponse en conséquence.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *