File: /www/wwwroot/www.scdc-marine.com/wp-content/themes/scdc-marine/HekuClass/View/MenuBanner.php
<?php
namespace Heku\HekuClass\View;
/**
* @package Heku\HekuClass\View
* @subpackage Classes/MenuBanner
* @author Heku Daleconan <http://www.daleconan.com>
* @copyright Copyright (c) 2022-2023, Heku Daleconan
* @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
*/
class MenuBanner {
/**
* 类实现单例模式,类的独生子女
*/
private static $instance;
/**
* 依赖注入的接口 Instance 方法
* 目标是 保证 init() 初始化方法 只执行一次
*
* @return self 唯一实例化的本类
*/
public static function instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self;
self::$instance->init();
}
return self::$instance;
}
private function init() {
add_action('heku_menu_banner',array($this,'menu_banner_html'), 10);
}
/**
* 输出缓存的header html 否则直接返回执行结果
*/
public static function menu_banner_html(){
$banner_group = heku_get_option('template_main','banner_fliter_group');
$banner_group_page = get_post_meta( get_the_ID(), 'banner_fliter_group', true );
$banner_group = $banner_group_page ? $banner_group_page : $banner_group;
return $banner_group;
}
public static function get_banner_array(){
if( is_home() ){
$banner_group = heku_get_option('template_main','banner_fliter_group');
$banner_group_temp = array();
foreach ($banner_group as $key => $value) {
if(isset($value['banner_used']) && in_array( 'home_banner' ,$value['banner_used'])){
$banner_group_temp[] = $value;
}
}
$banner_group = $banner_group_temp ? $banner_group_temp : $banner_group;
} elseif( is_archive() || is_category() ){
$banner_type = "home_banner";
$post_type = get_post_type();
$banner_type = $post_type ? $post_type . '_banner' : $banner_type;
$banner_group = heku_get_option('template_main','banner_fliter_group');
$banner_group_temp = array();
foreach ($banner_group as $key => $value) {
if(isset($value['banner_used']) && in_array( $banner_type ,$value['banner_used'])){
$banner_group_temp[] = $value;
}
}
// $term = get_queried_object();
// $term_id = $term->term_id;
// $banner_group_term = get_term_meta($term_id,'banner_fliter_group',true);
$banner_group = $banner_group_temp ? $banner_group_temp : '';
// $banner_group .= "$post_type" ;
} elseif( is_single() ){
$banner_type = "home_banner";
$post_type = get_post_type();
$banner_type = $post_type ? $post_type . '_banner' : $banner_type;
$banner_group = heku_get_option('template_main','banner_fliter_group');
$banner_group_temp = array();
foreach ($banner_group as $key => $value) {
if(isset($value['banner_used']) && in_array( $banner_type ,$value['banner_used'])){
$banner_group_temp[] = $value;
}
}
// $term = get_queried_object();
// $term_id = $term->term_id;
// $banner_group_term = get_term_meta($term_id,'banner_fliter_group',true);
$banner_group = $banner_group_temp ? $banner_group_temp : '';
// $banner_group .= "$post_type" ;
} elseif( is_page() ){
$banner_group_page = get_post_meta( get_the_ID(), 'banner_fliter_group', true );
$banner_group = $banner_group_page ? $banner_group_page : '';
} else{
return '';
}
return $banner_group;
}
}