✏️ 正在编辑: datis_logo.php
路径:
/home/h359620/public_html/wp-content/themes/datis/inc/elementor/widgets/datis_logo/datis_logo.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php namespace Datis\Widgets; if (!defined('ABSPATH')) exit; use Elementor\Widget_Base; use Elementor\Controls_Manager; use Elementor\Group_Control_Image_Size; use Elementor\Group_Control_Css_Filter; use Elementor\Group_Control_Border; use Elementor\Group_Control_Box_Shadow; if (!class_exists('Datis_Logo')) { class Datis_Logo extends Widget_Base { public function get_name() { return 'datis_logo'; } public function get_title() { return __('Site Logo', 'datis'); } public function get_icon() { return 'eicon-site-logo'; } public function get_categories() { return ['datis-widgets']; } protected function register_controls() { // ==== Content Tab ==== $this->start_controls_section( 'section_logo', [ 'label' => __('Site Logo', 'datis'), ] ); $this->add_control( 'custom_logo', [ 'label' => __('Custom Logo', 'datis'), 'type' => Controls_Manager::MEDIA, 'dynamic' => ['active' => true], 'description' => __('Optional: Override default site logo', 'datis'), 'default' => [ 'url' => $this->get_site_logo_url(), ] ] ); $this->add_group_control( Group_Control_Image_Size::get_type(), [ 'name' => 'image', 'default' => 'full', 'separator' => 'none', ] ); $this->add_control( 'link_to', [ 'label' => __('Link', 'datis'), 'type' => Controls_Manager::SELECT, 'default' => 'home', 'options' => [ 'none' => __('None', 'datis'), 'home' => __('Homepage', 'datis'), 'custom' => __('Custom URL', 'datis'), ], ] ); $this->add_control( 'custom_link', [ 'label' => __('Custom URL', 'datis'), 'type' => Controls_Manager::URL, 'placeholder' => 'https://your-site.com', 'condition' => [ 'link_to' => 'custom', ], 'show_external' => true, ] ); $this->add_responsive_control( 'alignment', [ 'label' => __('Alignment', 'datis'), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => __('Left', 'datis'), 'icon' => 'eicon-text-align-left', ], 'center' => [ 'title' => __('Center', 'datis'), 'icon' => 'eicon-text-align-center', ], 'right' => [ 'title' => __('Right', 'datis'), 'icon' => 'eicon-text-align-right', ], ], 'default' => 'left', 'selectors' => [ '{{WRAPPER}} .datis-site-logo' => 'text-align: {{VALUE}};', ], ] ); $this->end_controls_section(); // ==== Style Tab ==== $this->start_controls_section( 'section_style', [ 'label' => __('Style', 'datis'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'logo_width', [ 'label' => __('Width', 'datis'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px', '%'], 'range' => [ 'px' => ['min' => 20, 'max' => 800], '%' => ['min' => 10, 'max' => 100], ], 'selectors' => [ '{{WRAPPER}} .datis-site-logo img' => 'width: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'logo_opacity', [ 'label' => __('Opacity', 'datis'), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => ['min' => 0.1, 'max' => 1, 'step' => 0.1], ], 'selectors' => [ '{{WRAPPER}} .datis-site-logo img' => 'opacity: {{SIZE}};', ], ] ); $this->add_group_control( Group_Control_Css_Filter::get_type(), [ 'name' => 'css_filters', 'selector' => '{{WRAPPER}} .datis-site-logo img', ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'border', 'selector' => '{{WRAPPER}} .datis-site-logo img', ] ); $this->add_control( 'border_radius', [ 'label' => __('Border Radius', 'datis'), 'type' => Controls_Manager::DIMENSIONS, 'selectors' => [ '{{WRAPPER}} .datis-site-logo img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'box_shadow', 'selector' => '{{WRAPPER}} .datis-site-logo img', ] ); $this->end_controls_section(); } private function get_site_logo_url() { $custom_logo_id = get_theme_mod('custom_logo'); if ($custom_logo_id) { $logo_src = wp_get_attachment_image_src($custom_logo_id, 'full'); return $logo_src ? $logo_src[0] : ''; } return ''; } protected function render() { $settings = $this->get_settings_for_display(); $image_html = ''; $image_url = ''; if (!empty($settings['custom_logo']['id'])) { $image_url = Group_Control_Image_Size::get_attachment_image_src($settings['custom_logo']['id'], 'image', $settings); $image_html = '<img src="' . esc_url($image_url) . '" alt="' . esc_attr(get_bloginfo('name')) . '">'; } elseif (has_custom_logo()) { $logo_id = get_theme_mod('custom_logo'); $logo_src = wp_get_attachment_image_src($logo_id, 'full'); if ($logo_src) { $image_url = $logo_src[0]; $image_html = '<img src="' . esc_url($image_url) . '" alt="' . esc_attr(get_bloginfo('name')) . '">'; } } else { $image_html = '<h1>' . esc_html(get_bloginfo('name')) . '</h1>'; } $link_open = ''; $link_close = ''; if ($settings['link_to'] === 'home') { $link_open = '<a href="' . esc_url(home_url('/')) . '">'; $link_close = '</a>'; } elseif ($settings['link_to'] === 'custom' && !empty($settings['custom_link']['url'])) { $url = $settings['custom_link']['url']; $is_external = $settings['custom_link']['is_external'] ? ' target="_blank"' : ''; $nofollow = $settings['custom_link']['nofollow'] ? ' rel="nofollow"' : ''; $link_open = '<a href="' . esc_url($url) . '"' . $is_external . $nofollow . '>'; $link_close = '</a>'; } echo '<div class="datis-site-logo">'; echo $link_open . $image_html . $link_close; echo '</div>'; } } }
💾 保存文件
← 返回文件管理器