• Hallo zusammen. Habe ich da etwas falsch verstanden?

    Habe ich etwas falsch verstanden?

    Ich hab das Thema „astra-child“ aktiv und habe in Thema ASTRA zwei Dateien, die bei jedem Update überschrieben bzw. gelöscht werden.

    Was mache ich falsch, dass diese Dateien weiterhin verfügbar sind?

    ` wp-core

    version: 6.6.2
    site_language: de_DE
    user_language: de_DE
    timezone: Europe/Zurich
    permalink: /%postname%/
    https_status: false
    multisite: false
    user_registration: 1
    blog_public: 1
    default_comment_status: open
    environment_type: local
    user_count: 12
    dotorg_communication: true wp-paths-sizes

    wordpress_path: C:\Users\klwild\Local Sites\mecker-eckecom\app\public
    wordpress_size: 1,03 GB (1109236950 bytes)
    uploads_path: C:\Users\klwild\Local Sites\mecker-eckecom\app\public/wp-content/uploads
    uploads_size: 189,40 MB (198601941 bytes)
    themes_path: C:\Users\klwild\Local Sites\mecker-eckecom\app\public/wp-content/themes
    themes_size: 39,35 MB (41264120 bytes)
    plugins_path: C:\Users\klwild\Local Sites\mecker-eckecom\app\public/wp-content/plugins
    plugins_size: 129,60 MB (135900514 bytes)
    fonts_path: C:\Users\klwild\Local Sites\mecker-eckecom\app\public/wp-content/uploads/fonts
    fonts_size: directory not found
    database_size: 4,16 MB (4362600 bytes)
    total_size: 1,39 GB (1489366125 bytes) wp-active-theme

    name: Astra Child (astra-child)
    version: 4.7.2.1726124088
    author: Brainstorm Force
    author_website: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
    parent_theme: Astra (astra)
    theme_features: core-block-patterns, astra_hooks, widgets-block-editor, align-wide, automatic-feed-links, title-tag, post-thumbnails, starter-content, html5, post-formats, custom-logo, customize-selective-refresh-widgets, editor-style, woocommerce, rank-math-breadcrumbs, amp, editor-color-palette, widgets, menus
    theme_path: C:\Users\klwild\Local Sites\mecker-eckecom\app\public/wp-content/themes/astra-child
    auto_update: Deaktiviert wp-parent-theme

    name: Astra (astra)
    version: 4.8.1
    author: Brainstorm Force
    author_website: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
    theme_path: C:\Users\klwild\Local Sites\mecker-eckecom\app\public/wp-content/themes/astra
    auto_update: Deaktiviert wp-themes-inactive (1)

    OceanWP: version: 3.6.0, author: OceanWP, Automatische Aktualisierungen deaktiviert wp-plugins-active (20)

    Advanced Google reCAPTCHA: version: 1.22, author: WebFactory Ltd, Automatische Aktualisierungen deaktiviert
    Asgaros Forum: version: 2.9.0, author: Thomas Belser, Automatische Aktualisierungen deaktiviert
    Child Theme Configurator: version: 2.6.6, author: Lilaea Media, Automatische Aktualisierungen deaktiviert
    CookieYes | GDPR Cookie Consent: version: 3.2.6, author: CookieYes, Automatische Aktualisierungen deaktiviert
    Easy Accordion: version: 2.3.8, author: ShapedPlugin LLC, Automatische Aktualisierungen deaktiviert
    Head & Footer Code: version: 1.3.5, author: Aleksandar Urošević, Automatische Aktualisierungen deaktiviert
    Health Check & Troubleshooting: version: 1.7.1, author: The WordPress.org community, Automatische Aktualisierungen deaktiviert
    ImageMagick Engine: version: 1.7.9, author: Orangelab, Automatische Aktualisierungen deaktiviert
    MetaSlider: version: 3.91.0, author: MetaSlider, Automatische Aktualisierungen deaktiviert
    One User Avatar: version: 2.4.0, author: One Designs, Automatische Aktualisierungen deaktiviert
    Popup Builder: version: 4.3.3, author: Looking Forward Software Incorporated., Automatische Aktualisierungen deaktiviert
    Site Kit by Google: version: 1.135.0, author: Google, Automatische Aktualisierungen aktiviert
    Social Media and Share Icons (Ultimate Social Media): version: 2.9.2, author: Inisev, Automatische Aktualisierungen deaktiviert
    Spectra: version: 2.15.3, author: Brainstorm Force, Automatische Aktualisierungen deaktiviert
    Toolbox for Asgaros Forum: version: 1.2.4, author: Dominik Rauch, Automatische Aktualisierungen deaktiviert
    Tooltips: version: 9.9.3, author: Tomas | Docs | FAQ | Premium Support, Automatische Aktualisierungen deaktiviert
    WP Fastest Cache: version: 1.3.0, author: Emre Vona, Automatische Aktualisierungen deaktiviert
    WPvivid Backup Plugin: version: 0.9.106, author: WPvivid Team, Automatische Aktualisierungen deaktiviert
    XML Sitemap Generator for Google: version: 4.1.21, author: Auctollo, Automatische Aktualisierungen deaktiviert
    Yoast SEO: version: 23.4, author: Team Yoast, Automatische Aktualisierungen deaktiviert wp-plugins-inactive (5)

    Anti-Spam by CleanTalk: version: 6.41, author: СleanTalk - Anti-Spam Protection welcome@cleantalk.org, Automatische Aktualisierungen deaktiviert
    Liveticker (by stklcode): version: 1.2.2, author: Stefan Kalscheuer, Automatische Aktualisierungen deaktiviert
    Media Cleaner: version: 6.7.8, author: Jordy Meow, Automatische Aktualisierungen deaktiviert
    WP-Sweep: version: 1.1.8, author: Lester 'GaMerZ' Chan, Automatische Aktualisierungen deaktiviert
    WP Consent API: version: 1.0.7, author: RogierLankhorst, Automatische Aktualisierungen deaktiviert wp-media

    image_editor: WP_Image_Editor_Imagick
    imagick_module_version: 1809
    imagemagick_version: ImageMagick 7.1.1-32 Q16 x64 178bb32:20240505 https://imagemagick.org
    imagick_version: 3.7.0
    file_uploads: 1
    post_max_size: 1000M
    upload_max_filesize: 300M
    max_effective_size: 300 MB
    max_file_uploads: 20
    imagick_limits:
    imagick::RESOURCETYPE_AREA: 32 GB
    imagick::RESOURCETYPE_DISK: 9.2233720368548E+18
    imagick::RESOURCETYPE_FILE: 1536
    imagick::RESOURCETYPE_MAP: 16 GB
    imagick::RESOURCETYPE_MEMORY: 8 GB
    imagick::RESOURCETYPE_THREAD: 1
    imagick::RESOURCETYPE_TIME: 0
    imagemagick_file_formats: 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, ASHLAR, AVI, AVIF, AVS, BAYER, BAYERA, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK, CMYKA, CR2, CR3, CRW, CUBE, CUR, CUT, DATA, DCM, DCR, DCRAW, DCX, DDS, DFONT, DJVU, DNG, DPS, DPX, DXT1, DXT5, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FARBFELD, FAX, FF, FFF, FILE, FITS, FL32, FLIF, FLV, FPX, FRACTAL, FTP, FTS, FTXT, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, HALD, HDR, HEIC, HEIF, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, JXL, K25, KDC, LABEL, M2V, M4V, MAC, MAP, MASK, MAT, MATTE, MDC, MEF, MIFF, MKV, MNG, MONO, MOS, MOV, MP4, MPC, MPEG, MPG, MPO, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORA, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PHM, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PS, PS2, PS3, PSB, PSD, PTIF, PWP, QOI, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGB565, RGBA, RGBO, RGF, RLA, RLE, RMF, RSVG, RW2, RWL, SCR, SCREENSHOT, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, SRW, STEGANO, STI, STRIMG, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TM2, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WPG, X3F, XBM, XC, XCF, XPM, XPS, XV, YAML, YCBCR, YCBCRA, YUV
    gd_version: bundled (2.1.0 compatible)
    gd_formats: GIF, JPEG, PNG, WebP, BMP, XPM
    ghostscript_version: not available wp-server

    server_architecture: Windows NT 10.0 AMD64
    httpd_software: Apache/2.4.43 (Win32) mod_fcgid/2.3.9a
    php_version: 8.0.30 64bit
    php_sapi: cgi-fcgi
    max_input_variables: 4000
    time_limit: 1200
    memory_limit: 256M
    max_input_time: 600
    upload_max_filesize: 300M
    php_post_max_size: 1000M
    curl_version: 7.76.1 OpenSSL/1.1.1t
    suhosin: false
    imagick_availability: true
    pretty_permalinks: true
    htaccess_extra_rules: false
    current: 2024-09-20T19:43:52+00:00
    utc-time: Friday, 20-Sep-24 19:43:52 UTC
    server-time: 2024-09-20T21:43:45+02:00 wp-database

    extension: mysqli
    server_version: 5.7.28
    client_version: mysqlnd 8.0.30
    max_allowed_packet: 16777216
    max_connections: 151 wp-constants

    WP_HOME: undefined
    WP_SITEURL: undefined
    WP_CONTENT_DIR: C:\Users\klwild\Local Sites\mecker-eckecom\app\public/wp-content
    WP_PLUGIN_DIR: C:\Users\klwild\Local Sites\mecker-eckecom\app\public/wp-content/plugins
    WP_MEMORY_LIMIT: 40M
    WP_MAX_MEMORY_LIMIT: 256M
    WP_DEBUG: false
    WP_DEBUG_DISPLAY: true
    WP_DEBUG_LOG: false
    SCRIPT_DEBUG: false
    WP_CACHE: false
    CONCATENATE_SCRIPTS: undefined
    COMPRESS_SCRIPTS: undefined
    COMPRESS_CSS: undefined
    WP_ENVIRONMENT_TYPE: local
    WP_DEVELOPMENT_MODE: undefined
    DB_CHARSET: utf8
    DB_COLLATE: undefined wp-filesystem

    wordpress: writable
    wp-content: writable
    uploads: writable
    plugins: writable
    themes: writable
    fonts: writable google-site-kit

    version: 1.135.0
    php_version: 8.0.30
    wp_version: 6.6.2
    reference_url: http://localhost:10017
    amp_mode: no
    site_status: not-connected
    user_status: not authenticated
    verification_status: verified-non-site-kit
    connected_user_count: 1
    active_modules: site-verification, search-console, adsense, analytics-4, pagespeed-insights, tagmanager
    recoverable_modules: none
    required_scopes:
    openid: ✅
    https://www.googleapis.com/auth/userinfo.profile: ✅
    https://www.googleapis.com/auth/userinfo.email: ✅
    https://www.googleapis.com/auth/siteverification: ✅
    https://www.googleapis.com/auth/webmasters: ✅
    https://www.googleapis.com/auth/adsense.readonly: ✅
    https://www.googleapis.com/auth/analytics.readonly: ✅
    https://www.googleapis.com/auth/tagmanager.readonly: ✅
    capabilities:
    googlesitekit_authenticate: ✅
    googlesitekit_setup: ✅
    googlesitekit_view_posts_insights: ⭕
    googlesitekit_view_dashboard: ⭕
    googlesitekit_manage_options: ⭕
    googlesitekit_update_plugins: ⭕
    googlesitekit_view_splash: ✅
    googlesitekit_view_authenticated_dashboard: ⭕
    googlesitekit_view_wp_dashboard_widget: ⭕
    googlesitekit_view_admin_bar_menu: ⭕
    googlesitekit_view_shared_dashboard: ⭕
    googlesitekit_read_shared_module_data::["search-console"]: ⭕
    googlesitekit_read_shared_module_data::["adsense"]: ⭕
    googlesitekit_read_shared_module_data::["analytics-4"]: ⭕
    googlesitekit_read_shared_module_data::["pagespeed-insights"]: ⭕
    googlesitekit_manage_module_sharing_options::["search-console"]: ⭕
    googlesitekit_manage_module_sharing_options::["adsense"]: ⭕
    googlesitekit_manage_module_sharing_options::["analytics-4"]: ⭕
    googlesitekit_manage_module_sharing_options::["pagespeed-insights"]: ⭕
    googlesitekit_delegate_module_sharing_management::["search-console"]: ⭕
    googlesitekit_delegate_module_sharing_management::["adsense"]: ⭕
    googlesitekit_delegate_module_sharing_management::["analytics-4"]: ⭕
    googlesitekit_delegate_module_sharing_management::["pagespeed-insights"]: ⭕
    enabled_features:
    adsPax: ⭕
    audienceSegmentation: ⭕
    conversionInfra: ✅
    conversionReporting: ⭕
    gm3Components: ⭕
    privacySandboxModule: ⭕
    rrmModule: ⭕
    active_conversion_event_providers: none
    consent_mode: disabled
    consent_api: not-detected
    search-console_shared_roles: none
    search-console_management: owner
    adsense_shared_roles: none
    adsense_management: owner
    analytics-4_shared_roles: none
    analytics-4_management: owner
    pagespeed-insights_shared_roles: none
    pagespeed-insights_management: all_admins
    search_console_property: http://localhost:10017/
    adsense_account_id: pub-567•••••••••••••
    adsense_client_id: ca-pub-567•••••••••••••
    adsense_account_status: ready
    adsense_site_status: ready-no-auto-ads
    adsense_use_snippet: yes
    adsense_web_stories_adunit_id: none
    adsense_setup_completed_timestamp: Nicht verfügbar
    adsense_abr_use_snippet: no
    adsense_abr_use_error_protection_snippet: no
    adsense_abr_setup_status: undefined
    analytics_4_account_id: 2665•••••
    analytics_4_property_id: 3731891••
    analytics_4_web_data_stream_id: 6433••••••
    analytics_4_measurement_id: G-78••••••••
    analytics_4_use_snippet: yes
    analytics_4_ads_conversion_id: none
    analytics_4_available_custom_dimensions: none
    analytics_4_ads_linked: true
    analytics_4_ads_linked_last_synced_at: 1726469059
    analytics_4_adsense_linked: undefined
    analytics_4_adsense_linked_last_synced_at: 0
    tagmanager_account_id: 6074••••••
    tagmanager_container_id: GTM-WT9••••
    tagmanager_amp_container_id: none
    tagmanager_use_snippet: yes

    Gruss Klaus Wilde

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 9 Antworten – 1 bis 9 (von insgesamt 9)
  • Hallo,
    dann sind die Dateien (vermutlich PHP-Scripte) wahrscheinlich nicht im Child Theme, sondern im Parent Theme (Astra) geändert worden.
    Schau bitte mal in den folgenden Beitrag, in dem du Infos zum richtigen Anlegen von Child Themes findest.

    Viele Grüße
    Hans-Gerd

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Das ist eine gute Gelegenheit für ein paar Worte zur Verwendung von Child-Themes.

    Ein Child-Theme ist eine Ergänzung/Erweiterung eines Themes mit dem Ziel, dass das (Parent-)Theme zwar weiter aktualisiert werden kann, die Änderungen dabei aber nicht überschrieben werden. Individuelle Anpassung dürfen dabei nur im Child-Theme vorgenommen werden. Änderungen im Parent Theme werden selbst dann überschrieben, wenn ein Child-Theme vorhanden ist und genutzt wird.

    Eine sehr einfache Möglichkeit für eigenen Anpassungen ist, Templates eines Themes in ein Child-Theme zu kopieren und dann in diesem Template Code beliebig zu entfernen oder ergänzen. Aufgrund der Template-Hierarchie wird WordPress immer das angepasste Template im Child-Theme verwenden und das Template im Parent Theme ignorieren.

    Hieraus ergibt sich aber ein Problem, das bereits seit 2015 als „Child-Theme-Dilemma“ bekannt ist:
    Wird in einem Template eine Sicherheitslücke bekannt, kann der Theme-Entwickler das zwar im Rahmen eines Sicherheitsupdates beheben. Das Child-Theme verwendet aber weiterhin das eigene Template, das vielleicht wie gerade beschrieben eine kopierte und nur leicht modifizierte Fassung des Templates aus dem Parent-Theme ist (und damit die Sicherheitslücke beibehält!).

    Viele moderne Themes verwenden inzwischen Hooks, Schnittstellen auf die z.B. mit einer Funktion in einem Plugin zugegriffen werden kann, um Anpassungen im Theme vorzunehmen. Die Entwickler des Themes GeneratePress haben die vielen Ansatzpunkte für eigene Änderungen sehr hübsch grafisch dargestellt: https://docs.generatepress.com/article/hooks-visual-guide/.

    Für die „Nerds“ 🤓 unter uns ein kleines, praktisches Beispiel, wie sowas funktioniert: Ein Theme-Entwickler möchte auf einem Template den Satz „Schreibe einen Kommentar“ ausgeben:

    <?php
    $text = 'Schreibe einen Kommentar';
    echo $text; // gibt den Text Schreibe einen Kommentar aus

    Nun möchte der Entwickler dem Nutzer die Möglichkeit geben, die Variable $text zu ändern, damit ein anderer Text ausgegeben wird. Dazu verwendet er einen WordPress-Funktion, die das Ausführen einer Funktion an dieser Stelle erlaubt:

    <?php
    $text = 'Schreibe einen Kommentar';
    $text = apply_filters( 'kommentar_text', $text );
    echo $text;

    Das ändert zunächst nichts an der Ausgabe (die Variable $text durchläuft die Funktion ohne Änderung), erlaubt aber z.B. in einem Plugin eine Änderung vorzunehmen. Im Plugin steht dann sinngemäß etwas wie …

    <?php
    function mein_text() {
    $mein_text = 'Mich interessiert deine Meinung';
    return $mein_text;
    }
    add_filter( 'kommentar_text', 'mein_text' );

    Die Funktion add_filter() verwendet die im Theme eingefügte Schnittstelle (den Hook) kommentar_text, um eine eigene Funktion mein_text() auszuführen. Diese Funktion gibt den neuen Text zurück. Ergebnis ist, das bei Nutzung von Templates mit diesem Hook die Textstelle individuell abgeändert wird: Statt „Schreibe einen Kommentar“ wird jetzt „Mich interessiert deine Meinung“ ausgegeben.

    Im schlechtesten Fall ändert der Theme-Entwickler im Rahmen eines Updates den Namen des Hooks (grundsätzlich keine gute Idee). In dem Fall würde die Funktion add_filter() einfach nicht ausgeführt und es wird keine Textersetzung vorgenommen. Es kommt aber nicht zu einem fatalen Fehler.
    Bei einem Update des Themes ändert sich auch nichts am eigenen Plugin; die eigenen Anpassungen werden also nicht überschrieben. Selbst gegen einen Wechsel des Themes kann man sich in einem eigenen Plugin mit einer Abfrage des aktuell verwendeten Theme schützen.

    Für eigene Templates ist ein Child-Theme der bessere Ort. Für Anpassungen wie oben beschrieben, ist die Verwendung von Hooks (sofern das Theme sie anbietet!) in der functions.php des Child-Themes oder einem eigenen Plugin oft eine deutlich flexiblere Lösung. Änderungen sind dann auch für Nachfolger leichter nachvollziehbar.

    Eigene CSS-Regeln können im Customizer bzw. bei neuen Themes im Website-Editor beim Anpassen des Stils unter Zusätzliches CSS eingetragen oder in einem eigenen Plugin mit der Funktion wp_enqueue_script() eingebunden werden. Nur für eine Anpassung der CSS-Regeln braucht es deshalb kein zusätzliches Child-Theme.

    Fazit: Wegen des genannten Child-Theme-Dilemmas versuche ich, nach Möglichkeit die Erstellung eines Child-Themes zu vermeiden. Statt dessen nutze ich in einem eigenen Plugin Hooks, die WordPress und moderne Themes zur Verfügung stellen und binde eigene CSS-Regeln per Customizer/Website-Editor oder (bei sehr umfangreichen Änderungen) eine eigene CSS-Datei ein. 🤓

    Thread-Starter Klaus Wilde

    (@klwild)

    Danke für die vielen Informationen.

    Jetzt mal für Dummys. Ich habe zwei Templates im Ordner: /mecker-ecke.com/wp-content/themes/astra, die ich für Seiten benötige.

    Muss ich die jetzt in der gleichen Struktur im Child Thema kopieren?

    Eine spezielle Funktion, die ich benötige, habe ich in die functions.php im Child Thema kopiert und nach Updates des Themas sind die immer noch verfügbar. Aktuell muss ich die zwei php Dateien immer wieder in das Parent Thema kopieren.

    Ist das richtig, was ich mir da so denke?

    Aktuell muss ich die zwei php Dateien immer wieder in das Parent Thema kopieren.

    Dann machst du was falsch, vermutlich hast du nicht das Child-Theme als aktuelles Theme eingestellt.

    Siehe z.B. https://www.webtimiser.de/wordpress-child-theme-erstellen/

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Ich habe zwei Templates im Ordner: /mecker-ecke.com/wp-content/themes/astra, … Muss ich die jetzt in der gleichen Struktur im Child Thema kopieren?

    Da ist ja nicht viel „Struktur“. Liegen die Templates im Hauptverzeichnis des Themes, kopierst du sie ins Hauptverzeichnis des Child-Themes. Wenn die in einem Unterverzeichnis liegen, z.B. template-parts, legst du auch im Child-Theme ein gleichnamiges Unterverzeichnis an und kopierst das Template, das du ändern möchtest, dahin. Vorausgesetzt, du kannst deine Änderung nicht viel eleganter über eine neue Funktion lösen, die du über einen Hook des Themes einbindest (siehe oben).

    Eine spezielle Funktion, die ich benötige, habe ich in die functions.php im Child Thema kopiert …

    Das geht so nur, wenn der Entwickler die Funktion „pluggable“ gemacht hat. Damit ist gemeint, dass im Parent-Theme mit

    if( ! function_exists( 'name_der_funktion' ) {
    function name_der_funktion() {

    }
    }

    zunächst geprüft wird, ob der Funktionsname bereits in einem Child-Theme verwendet wird. Wird das nicht abgefragt, kommt der gleiche Funktionsname zweimal vor (einmal im Parent- und einmal im Child-Theme), was zu einem Fatal Error führt, weil Funktionsnamen in PHP einzigartig sein müssen.

    Aktuell muss ich die zwei php Dateien immer wieder in das Parent Thema kopieren.

    Was wäre dann der Sinn des Child-Themes? Du kopierst schließlich Templates ins Child-Theme, um anschließend dort Änderungen vorzunehmen, die nicht bei jedem Update wieder überschrieben werden. Voraussetzung ist aber, dass du das Child-Theme aktiviert hast.

    Moderator La Geek

    (@la-geek)

    Die Entwickler des Themes GeneratePress haben die vielen Ansatzpunkte für eigene Änderungen sehr hübsch grafisch dargestellt: https://docs.generatepress.com/article/hooks-visual-guide/.

    Für die „Nerds“ 🤓 unter uns ein kleines, praktisches Beispiel, wie sowas funktioniert:

    @pixolin
    Sind die Hooks aus dem Link nicht (eher für) Action Hooks?

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    @la-geek Ja, richtig.

    Für mich sind Filter und Action Hooks eng verwandt, indem sie das Einbinden einer Funktion erlauben. Sie unterscheiden sich vereinfacht gesagt darin, dass bei Filtern Inhalte verändert werden, währen bei Action Hooks zusätzliche Funktionen ausgeführt werden.

    GeneratePress gefiel mir als Beispiel, weil es besonders viele Hooks verwendet. Da gibt es sowohl Action Hooks (z.B. um vor/nach der Loop etwas auszugeben) als auch Filter Hooks (um z.B. in inc/structure/footer.php die Funktion zur Zusammensetzung der Copyright-Zeile zu ändern).

    In der grafischen Darstellung auf der genannten Seite tauchen aber tatsächlich nur die Action Hooks des Themes auf. Die Filter werden unter https://docs.generatepress.com/collection/filters/ aufgelistet.

    Ich wollte den TE nicht mit diversen Code-Beispielen langweilen und habe deshalb nur ein sehr vereinfachtes Beispiel für einen Filter gezeigt. Hauptsächlich ging es darum, dass Nutzer nach Möglichkeit wegen des Child-Theme-Dilemmas und erhöhten Wartungsaufwands auf Child-Themes verzichten sollten.

    Moderator La Geek

    (@la-geek)

    In der grafischen Darstellung auf der genannten Seite tauchen aber tatsächlich nur die Action Hooks des Themes auf.

    Richtig, darauf zielte auch meine Frage ab:

    Sind die Hooks aus dem Link nicht (eher für) Action Hooks?

    Was einigermaßen verwirrend sein könnte, wenn sich die (Action) Hooks in deinen Code-Beispielen nicht wiederfinden.

    Astra selbst hat eine ausgezeichnete Dokumentation.

    Visual Hook Guide (Action Hooks)
    https://developers.wpastra.com/theme-visual-hooks/
    Es gibt sogar ein Plugin, mit dem man die Action Hooks von Astra auf der eigenen Website anzeigen lassen kann, habe ich selbst oft genug verwendet, ist hilfreich.

    Dokumentation: https://wpastra.com/docs/using-hooks/
    sowie
    https://developers.wpastra.com/astra-theme/

    Filter Hooks
    https://developers.wpastra.com/astra-theme/reference/hooks/

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Was einigermaßen verwirrend sein könnte …

    Stimmt. Verwirren wollte ich keinen. Aber das exzellente Beispiel Astra ist mir spontan nicht eingefallen. Danke für die Ergänzung. (Es lesen auch mal andere mit.)

Ansicht von 9 Antworten – 1 bis 9 (von insgesamt 9)

Das Thema „Child Thema“ ist für neue Antworten geschlossen.