✏️ 正在编辑: class-avada-head.php
路径:
/home/lssfapb/www/wp-content/themes/Avada/includes/class-avada-head.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php /** * Tweaks for the <head> of the document. * * @author ThemeFusion * @copyright (c) Copyright by ThemeFusion * @link https://theme-fusion.com * @package Avada * @subpackage Core * @since 3.8 */ // Do not allow directly accessing this file. if ( ! defined( 'ABSPATH' ) ) { exit( 'Direct script access denied.' ); } /** * Tweaks for the <head> of the document. */ class Avada_Head { /** * Constructor. * * @access public */ public function __construct() { /** * WIP add_action( 'wp_head', array( $this, 'x_ua_meta' ), 1 ); add_action( 'wp_head', array( $this, 'the_meta' ) ); */ add_filter( 'language_attributes', [ $this, 'add_opengraph_doctype' ] ); add_filter( 'document_title_separator', [ $this, 'document_title_separator' ] ); add_filter( 'theme_color_meta', [ $this, 'theme_color' ] ); add_action( 'wp_head', [ $this, 'insert_favicons' ], 2 ); add_action( 'admin_head', [ $this, 'insert_favicons' ], 2 ); add_action( 'login_head', [ $this, 'insert_favicons' ], 2 ); add_action( 'wp_head', [ $this, 'insert_og_meta' ], 5 ); remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' ); if ( ! function_exists( '_wp_render_title_tag' ) ) { add_action( 'wp_head', [ $this, 'render_title' ] ); } add_action( 'wp_head', [ $this, 'set_user_agent' ], 1000 ); add_action( 'wp_head', [ $this, 'preload_fonts' ] ); // wp_body_open function introduced in WP 5.2. if ( function_exists( 'wp_body_open' ) ) { add_action( 'avada_before_body_content', 'wp_body_open' ); } /** * WIP add_filter( 'wpseo_metadesc', array( $this, 'yoast_metadesc_helper' ) ); */ } /** * Adding the Open Graph in the Language Attributes * * @access public * @param string $output The output we want to process/filter. * @return string The altered doctype */ public function add_opengraph_doctype( $output ) { if ( Avada()->settings->get( 'status_opengraph' ) ) { return $output . ' prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#"'; } return $output; } /** * Renders the title. * * @access public * @since 5.0.0 * @return void */ public function render_title() { wp_title( '' ); } /** * Set the user agent data attribute on the HTML tag. * * @access public * @since 6.0 * @return void */ public function set_user_agent() { ?> <script type="text/javascript"> var doc = document.documentElement; doc.setAttribute( 'data-useragent', navigator.userAgent ); </script> <?php } /** * Preloads font files. * * @static * @access public * @since 7.2 * @return void */ public function preload_fonts() { $fusion_settings = awb_get_fusion_settings(); $preload_fonts = $fusion_settings->get( 'preload_fonts' ); $tags = ''; if ( 'icon_fonts' === $preload_fonts || 'all' === $preload_fonts ) { // Icomoon. $font_url = FUSION_LIBRARY_URL . '/assets/fonts/icomoon'; $font_url = set_url_scheme( $font_url ) . '/awb-icons.woff'; $tags .= '<link rel="preload" href="' . $font_url . '" as="font" type="font/woff" crossorigin>'; // Font Awesome. $tags .= ( 'local' === $fusion_settings->get( 'gfonts_load_method' ) && true === Fusion_Font_Awesome::is_fa_pro_enabled() && ! ( function_exists( 'fusion_is_preview_frame' ) && fusion_is_preview_frame() ) ) ? fusion_library()->fa->get_local_subsets_tags() : fusion_library()->fa->get_subsets_tags(); // Custom Icons. $tags .= fusion_get_custom_icons_preload_tags(); } if ( 'google_fonts' === $preload_fonts || 'all' === $preload_fonts ) { // Google fonts. $google_fonts = Avada_Google_Fonts::get_instance(); $tags .= $google_fonts->get_preload_tags(); } echo $tags; // phpcs:ignore WordPress.Security.EscapeOutput } /** * Avada extra OpenGraph tags * These are added to the <head> of the page using the 'wp_head' action. * * @access public * @return void */ public function insert_og_meta() { // Early exit if we don't need to continue any further. if ( ! Avada()->settings->get( 'status_opengraph' ) ) { return; } // Early exit if this is not a singular post/page/cpt. if ( ! is_singular() ) { return; } global $post; $settings = Avada::settings(); $image = ''; if ( ! has_post_thumbnail( $post->ID ) ) { if ( isset( $settings['logo'] ) && $settings['logo'] ) { $image = $settings['logo']; } } else { $thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' ); $image = esc_attr( $thumbnail_src[0] ); } if ( is_array( $image ) ) { $image = ( isset( $image['url'] ) && ! empty( $image['url'] ) ) ? $image['url'] : ''; } ?> <meta property="og:title" content="<?php echo esc_attr( strip_tags( str_replace( [ '"', "'" ], [ '"', ''' ], $post->post_title ) ) ); // phpcs:ignore WordPress.WP.AlternativeFunctions.strip_tags_strip_tags ?>"/> <meta property="og:type" content="article"/> <meta property="og:url" content="<?php echo esc_url_raw( get_permalink() ); ?>"/> <meta property="og:site_name" content="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>"/> <meta property="og:description" content="<?php echo esc_attr( Avada()->blog->get_content_stripped_and_excerpted( 55, $post->post_content ) ); ?>"/> <?php if ( '' != $image ) : // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison ?> <?php if ( is_array( $image ) ) : ?> <?php if ( isset( $image['url'] ) ) : ?> <meta property="og:image" content="<?php echo esc_url_raw( $image['url'] ); ?>"/> <?php endif; ?> <?php else : ?> <meta property="og:image" content="<?php echo esc_url_raw( $image ); ?>"/> <?php endif; ?> <?php endif; ?> <?php } /** * Add X-UA-Compatible meta when needed. * * @access public */ public function x_ua_meta() { if ( isset( $_SERVER['HTTP_USER_AGENT'] ) && ( false !== strpos( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ), 'MSIE' ) ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput echo '<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />'; } } /** * Set the document title separator. * * @access public */ public function document_title_separator() { return '-'; } /** * Avada favicon as set in global options. * These are added to the <head> of the page using the 'wp_head' action. * * @access public * @since 4.0 * @return void */ public function insert_favicons() { ?> <?php if ( '' !== Avada()->settings->get( 'favicon', 'url' ) ) : ?> <link rel="shortcut icon" href="<?php echo esc_url_raw( Avada()->settings->get( 'favicon', 'url' ) ); ?>" type="image/x-icon" /> <?php endif; ?> <?php if ( '' !== Avada()->settings->get( 'iphone_icon', 'url' ) ) : ?> <!-- For iPhone --> <link rel="apple-touch-icon" href="<?php echo esc_url_raw( Avada()->settings->get( 'iphone_icon', 'url' ) ); ?>"> <?php endif; ?> <?php if ( '' !== Avada()->settings->get( 'iphone_icon_retina', 'url' ) ) : ?> <!-- For iPhone Retina display --> <link rel="apple-touch-icon" sizes="180x180" href="<?php echo esc_url_raw( Avada()->settings->get( 'iphone_icon_retina', 'url' ) ); ?>"> <?php endif; ?> <?php if ( '' !== Avada()->settings->get( 'ipad_icon', 'url' ) ) : ?> <!-- For iPad --> <link rel="apple-touch-icon" sizes="152x152" href="<?php echo esc_url_raw( Avada()->settings->get( 'ipad_icon', 'url' ) ); ?>"> <?php endif; ?> <?php if ( '' !== Avada()->settings->get( 'ipad_icon_retina', 'url' ) ) : ?> <!-- For iPad Retina display --> <link rel="apple-touch-icon" sizes="167x167" href="<?php echo esc_url_raw( Avada()->settings->get( 'ipad_icon_retina', 'url' ) ); ?>"> <?php endif; ?> <?php } /** * Fixes YOAST SEO plugin issues. * * @access public * @since 5.0.3 * @param string $metadesc The description. * @return string */ public function yoast_metadesc_helper( $metadesc ) { if ( '' === $metadesc ) { global $post; $metadesc = Avada()->blog->get_content_stripped_and_excerpted( 55, $post->post_content ); } return $metadesc; } /** * Echoes the viewport. * * @access public * @since 5.1.0 * @return void */ public function the_viewport() { $is_ipad = (bool) ( isset( $_SERVER['HTTP_USER_AGENT'] ) && false !== strpos( $_SERVER['HTTP_USER_AGENT'], 'iPad' ) ); // phpcs:ignore WordPress.Security $viewport = ''; if ( fusion_get_option( 'responsive' ) && $is_ipad ) { $viewport .= '<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />'; } elseif ( fusion_get_option( 'responsive' ) ) { if ( Avada()->settings->get( 'mobile_zoom' ) ) { $viewport .= '<meta name="viewport" content="width=device-width, initial-scale=1" />'; } else { $viewport .= '<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />'; } } $viewport = apply_filters( 'avada_viewport_meta', $viewport ); echo $viewport; // phpcs:ignore WordPress.Security.EscapeOutput } /** * Prints the theme-color meta. * * @access public * @since 5.8 * @param string $theme_color The theme-color we want to use. * @return string */ public function theme_color( $theme_color ) { // Exit early if PWA is not enabled. $pwa_enabled = Fusion_Settings::get_instance()->get( 'pwa_enable' ); if ( true === $pwa_enabled || '1' !== $pwa_enabled ) { $settings = Fusion_Settings::get_instance(); $theme_color = $settings->get( 'pwa_theme_color' ); return Fusion_Color::new_color( $theme_color )->get_new( 'alpha', 1 )->to_css( 'hex' ); } return $theme_color; } }
💾 保存文件
← 返回文件管理器