Verfasste Forenbeiträge

Ansicht von 1 Antwort (von insgesamt 1)
  • Thread-Starter luke2022

    (@luke2022)

    @pixolin

    Die Google Fonts werden wohl auch nicht vom Theme eingebunden, sondern von einem der Plugins.

    Danke für den Tipp! Genau das war’s. Das Plugin WP Megamenu bindet in der Datei classes/class.wp-megamenu-css mit folgender Funktion die Google-Fonts ein:

    public function before_header(){
                global $wpdb;
                $wpmm_css_args = array('post_type' => 'wpmm_theme');
                $wpmm_css_query = new WP_Query( $wpmm_css_args );
    
                $loadable_fonts = array();
                if ($wpmm_css_query->have_posts()){
                    while ($wpmm_css_query->have_posts()) {
                        $wpmm_css_query->the_post();
                        $theme = maybe_unserialize(get_the_content());
                        //dropdown_submenu_item_text_font
                        if ( ! empty($theme['top_level_item_text_font'])){
                            $loadable_fonts[strtolower( str_replace( ' ', '-', urldecode( $theme['top_level_item_text_font'] ) ) )] = $theme['top_level_item_text_font'];
                        }
                        if ( ! empty($theme['dropdown_submenu_item_text_font'])){
                            $loadable_fonts[strtolower( str_replace( ' ', '-', urldecode( $theme['dropdown_submenu_item_text_font'] ) ) )] = $theme['dropdown_submenu_item_text_font'];
                        }
                        if ( ! empty($theme['cta_btn_font'])){
                            $loadable_fonts[strtolower( str_replace( ' ', '-', urldecode( $theme['cta_btn_font'] ) ) )] = $theme['cta_btn_font'];
                        }
                    }
                    wp_reset_query();
                }
    
                //Check if there any Item Logo sets Google Font
                $menu_layout_query = $wpdb->get_results("select * from {$wpdb->postmeta} WHERE meta_key = 'wpmm_layout' ");
                if ( ! empty($menu_layout_query) ) {
                    foreach ( $menu_layout_query as $layout ) {
                        $layout_unserialize = maybe_unserialize( $layout->meta_value );
                        $mo                 = ! empty( $layout_unserialize['options'] ) ? $layout_unserialize['options'] : array();
    
                        if (! empty($mo['item_logo_type']) && $mo['item_logo_type'] === 'text' && ! empty( $mo['text_logo_google_font']) ) {
                            if ( ! empty( $mo['text_logo_google_font'] ) ) {
                                $loadable_fonts[strtolower( str_replace( ' ', '-', urldecode( $mo['text_logo_google_font'] ) ) )] = $mo['text_logo_google_font'];
                            }
                        }
                    }
                }
    
                if ( ! empty($loadable_fonts)){
                    foreach ($loadable_fonts as $key => $family){
                        $uri = '//fonts.googleapis.com/css?family=';
                        $params = urldecode( $family );
                        $params = str_replace( ' ', '+', $params );
                        $params2 = ':';
                        foreach (wpmm_get_google_font_weights($family) as $font_style) {
                            $params2.= $font_style.',';
                        }
                        $params2 = rtrim($params2 , ',');
                        wp_enqueue_style( $key, $uri.$params.$params2, false, WPMM_VER );
                    }
                }
            }

    Leider musste ich gerade feststellen, dass ich jetzt zwar weiß wo es herkommt, aber keine Ahnung habe, wie ich es wegkriege (sprich die Fonts lokal einbinde). Einfach die Funktion in die functions.php kopieren und den Pfad anpassen geht schon mal nicht. 😐 Wäre ja auch zu einfach gewesen…
    Kann mir bitte jemand mit mehr Programmierkenntnis helfen?

    Grüße, Luke

Ansicht von 1 Antwort (von insgesamt 1)