Support » Themes » Plugin template in Child einbinden

  • Gelöst peter_lang

    (@peter_lang)


    Hallo,
    da ich das Layout in einem Plugin template geändert habe, wird es nun bei jedem Update des Plugins überschrieben. Ist es möglich diese eine Templateseite in das Childtheme Verzeichnis zu kompieren und einzubinden?

    Einfach nur in Child kopieren reicht wohl nicht aus, irgendwo muss doch ein Verweis eingefügt werden oder?

Ansicht von 8 Antworten - 1 bis 8 (von insgesamt 8)
  • Danke, werde es heute mal ausprobieren.

    Moderator Bego Mario Garde

    (@pixolin)

    Da es wohl um Layout-Anpassungen geht, fände ich hier das Auskoppeln von Plugin-Funktionen über Hooks und/oder die Definition zusätzlicher Funktionen ein wenig übertrieben. Wahrscheinlich reicht es bereits, wenn du eigene CSS-Regeln im Customizer unter Zusätzliches CSS einträgst. Alternativ kannst du ein Child Theme erstellen und dort eigene CSS-Regeln in der style.css einfügen (nicht ganz sauber, weil hier Stylesheets von Theme und Plugin gemischt werden) oder ein eigenes Plugin schreiben, das ein weiteres Stylesheet einbindet.

    Das größte Problem ist eigentlich die Spezifität von CSS-Regeln. Wenn du in einem Child-Theme eine CSS-Regeln p.wichtig { color: red; } hinzufügst, sollte eigentlich davon ausgegangen werden, dass Absätze mit der CSS-Klasse .wichtig in Rot ausgegeben werden. Verwendet aber das Theme an anderer Stelle eine Regel .main-entry p.wichtig { background: red; color: yellow; } wird der Absatz mit gelber Schrift auf rotem Hintergrund ausgegeben und zuvor angegebene, eigene CSS-Regel ignoriert, da die CSS-Regel des Themes spezifischer ist und deshalb stärker gewichtet wird. Sowas lässt sich im Browser mit den Web-Entwicklertools gut testen, wobei wir dann aber endgültig hier den Rahmen eines WordPress-Anwender-Support sprengen.

    Ich hatte in dem Plugin Template weniger css geändert, sondern eher das Seitengerüstfür eine eigene Darstellung, deshalbb kann man nicht einzelne Bereiche über die function umschreiben, sondern am einfachsten, die gesamte Template page aus dem Child laden bzw ersetzen..

    Moderator Bego Mario Garde

    (@pixolin)

    In dem Fall war der Hinweis von @bscu passender.

    Bin da noch nicht so versiert drin .. vlt kann mir einer hier das erklären:

    Org Code
    function custom_wc_locate_template( $template, $template_name, $template_path ) {
    $template_overwrite = dirname( __FILE__ ) . ‚/templates/‘ . $template_name;

    if ( file_exists( $template_overwrite ) ) {
    $template = $template_overwrite;
    }
    return $template;
    }
    add_filter( ‚woocommerce_locate_template‘, ‚custom_wc_locate_template‘, 10, 3 );

    ###################################################

    Ich würde das so anpassen, dass er die Datei aus dem Child Verzeichnis zieht:
    Weiß nicht genau was ich unter Filter setzen soll

    `function custom_wc_locate_template( $template, $template_name, $template_path ) {
    $template_overwrite = dirname(‚vsel-page-template.php‘) . ‚/wp-content/plugins/very-simple-event-list‘ . $template_name;

    if ( file_exists( $template_overwrite ) ) {
    $template = $template_overwrite;
    }
    return $template;
    }
    add_action( ‚custom_wc_locate_template‘, ‚vsel-page-template‘ );

    • Diese Antwort wurde geändert vor 2 Wochen, 1 Tag von peter_lang.

    Alternativ soll auch gehen, wenn man das Modulverzeichnis mit der aktualisierten Datei ins child Verzeichnis läd … aber auch huer greift das nicht

    // Hab mit dem Entwickler gesprochen, das exkludieren ist in diesem Modul nicht möglich, da das Plugin shortcode basiert ist was auch die templates beinhaltet.

Ansicht von 8 Antworten - 1 bis 8 (von insgesamt 8)