Zeigen Sie zufällige Kategorien auf der Startseite an (Suchen und Bearbeiten von Themenfunktionen)


8

Ich bin derzeit in der Alpha-Phase der Bearbeitung eines untergeordneten Themas für ein Wordpress-Thema. Ich habe Programmiererfahrung und einige Erfahrung in der Verwaltung von WordPress, aber keine direkte Erfahrung in der Bearbeitung von WordPress-Code. Derzeit werden die ersten drei Kategorien alphabetisch angezeigt.

Was ich versuche zu tun: Anstatt die ersten drei Kategorien alphabetisch anzuzeigen, möchte ich 3 zufällige Kategorien mit mehr als x Anzahl von Produkten anzeigen.

Ich bin auf die folgenden Straßensperren / Fragen gestoßen, die mich davon abhalten, fortzufahren.

  1. Welcher Mechanismus / welche Funktion steuert die Auswahl dieser Kategorien? (Ihr Code)
  2. Ist es themenbasiert oder etwas im zugrunde liegenden WordPress-System?
  3. Welche anderen Informationen wären für diese Änderung relevant?
  4. Welche Informationen wären in der Firefox Dev Bar hilfreich?
  5. Wie finde ich "TheirCode", damit ich es durch "MyCode" ersetzen kann?

Die eigentliche Frage hier ist: Wie finde ich "TheirCode", der für diese Auswahl verantwortlich ist, indem ich Tools wie die Firefox Dev Bar und die eigentliche Quelle verwende?

Diese Frage bezieht sich nicht auf WooCommerce (das Plugin). Ich suche nach einer Möglichkeit, eine Funktion in einem von WooCommerce (dem Unternehmen) entworfenen Thema oder in einem anderen Thema zu finden.

OpenSource-Thema: WooCommerce Storefront


2
Suchen Sie mit Firefox Developer Inspector nach Tags mit bestimmten Klassen- oder ID-Umbruchkategorien. Suchen Sie dann in den Quelldateien des Themas nach dieser Klasse oder ID. Sie sollten eine Funktion finden, die Kategorien anzeigt. Überschreiben Sie die Funktion oder verwenden Sie den Funktionsfilter, um Kategorien zu ersetzen.
Kierzniak

Antworten:


11

Die eigentliche Frage hier ist: Wie finde ich "TheirCode", der für diese Auswahl verantwortlich ist, indem ich Tools wie die Firefox-Entwicklungsleiste und die eigentliche Quelle verwende?

Wenn Sie sich auf die HTML-Ausgabe / -Quelle beziehen, klicken Sie beispielsweise auf der offiziellen Storefront- Demo-Site mit der rechten Maustaste auf die Überschrift oder den Abschnitt "Produktkategorien", und Sie können dies leicht überprüfen section. Weitere Optionen wie das Symbol "Element auswählen" finden Sie im MDN-Dokument .

Geben Sie hier die Bildbeschreibung ein

Die " eigentliche Quelle " (dh der PHP-Code oder die PHP-Funktion, mit der der Abschnitt "Produktkategorien" auf Seiten mithilfe der Vorlage "Homepage" generiert wird) finden Sie in 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' ),
            ) );

            ...
        }
    }
}

Dies storefront_product_categories()gilt auch für die PHP-Funktion, nach der Sie suchen und die Sie bei Bedarf vollständig überschreiben können (siehe https://docs.woocommerce.com/document/set-up-and-use-a-child-theme/#) Abschnitt 5 ). Wenn Sie die Produktkategorien jedoch nur in zufälliger Sortierung anzeigen möchten, können Sie einfach die verwenden storefront_product_categories_args, um die Abfrageargumente zu filtern (was in Ihrem Fall der Fall wäre orderby):

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

Dieser Filter wird innerhalb der storefront_product_categories()Funktion aufgerufen. Dies sind die anderen Filter / Aktionen, die Sie verwenden können:

  • Filter: storefront_product_categories_shortcode_args

  • Aktion: storefront_homepage_before_product_categories

  • Aktion: storefront_homepage_after_product_categories_title

  • Aktion: storefront_homepage_after_product_categories

Sehen Sie dies, wenn Sie sich der Unterschiede zwischen einer "Aktion" und einem "Filter" nicht sicher sind.


UPDATE: Wie können Sie den Code finden?

Durchsuchen Sie die Storefront-Themendokumentation :

Ich suche nach einer Möglichkeit, eine Funktion in einem von WooCommerce (dem Unternehmen) entworfenen Thema oder in einem anderen Thema zu finden.

  • Überprüfen (und lesen) Sie zuerst die Dokumentation des Themas.

  • Wenn keine oder Sie die benötigten Informationen nicht / nicht gefunden haben, versuchen Sie, was @motivast vorgeschlagen hat - Überprüfen Sie die Elemente auf der Seite, suchen Sie den entsprechenden HTML-Code und / oder CSS class/ idund durchsuchen Sie die Themendateien danach HTML oder CSS class/ idbis Sie die richtige Datei oder den richtigen PHP-Code / gefunden haben function.

Auf der Storefront-Demo-Website lautet der HTML-Code des Abschnitts "Produktkategorien" beispielsweise:

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

Sie können die Themendateien also mit einem der folgenden Schlüsselwörter durchsuchen : (Ich würde von der spezifischsten oder engsten Übereinstimmung mit dem generierten HTML-Code ausgehen.)

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

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

  • storefront-product-categories

  • storefront-product-section

Angenommen, Sie wüssten nichts über die Storefront- / Themendokumentation. Wenn Sie die oben genannten Suchvorgänge durchführen, gelangen Sie schließlich zur richtigen Datei oder zum richtigen PHP-Code function.

Wenn Sie weitere Hilfe benötigen, lassen Sie es mich wissen und ich werde diese Antwort entsprechend aktualisieren.


Der aktualisierte Teil der Antwort funktioniert nicht mit Storefront 2.5.0. Nicht einmal die angegebenen Filterbeispiele auf ihrer eigenen Dokumentationsseite.
Klewis
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.