HEX
Server: nginx/1.22.1
System: Linux VM-16-9-centos 3.10.0-1160.99.1.el7.x86_64 #1 SMP Wed Sep 13 14:19:20 UTC 2023 x86_64
User: www (1001)
PHP: 7.3.31
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/softfox.com.cn/wp-content/plugins/wpjam-basic/extends/mobile-theme.php
<?php
/*
Name: 移动主题
URI: https://mp.weixin.qq.com/s/DAqil-PxyL8rxzWBiwlA3A
Description: 给当前站点设置移动设备设置上使用单独的主题。
Version: 2.0
*/
class WPJAM_Mobile_Theme{
	public static function get_fields(){
		$theme		= wp_get_theme();
		$themes 	= [$theme->get_stylesheet() => $theme] + wp_get_themes(['allowed' => true]);
		$options	= array_map(function($theme){ return $theme->get('Name'); }, $themes);

		return ['mobile_stylesheet'=>['title'=>'选择移动主题', 'type'=>'select', 'options'=>$options]];
	}

	public static function get_menu_page(){
		return [
			'menu_slug'		=> 'mobile-theme',
			'parent'		=> 'themes',
			'function'		=> 'option',
			'option_name'	=> 'wpjam-basic',
			'summary'		=> __FILE__,
		];
	}

	public static function filter_stylesheet($stylesheet=''){
		$theme	= wpjam_get_current_var('mobile_theme');

		return $theme->get_stylesheet();
	}

	public static function filter_template($template){
		$theme	= wpjam_get_current_var('mobile_theme');

		return $theme->get_template();
	}

	public static function add_hooks(){
		$stylesheet	= wp_is_mobile() ? wpjam_basic_get_setting('mobile_stylesheet') : null;
		$stylesheet	= $stylesheet ?: ($_GET['wpjam_theme'] ?? null);
		$theme		= $stylesheet ? wp_get_theme($stylesheet) : null;

		if($theme){
			wpjam_set_current_var('mobile_theme', $theme);

			add_filter('stylesheet',	[self::class, 'filter_stylesheet']);
			add_filter('template',		[self::class, 'filter_template']);
		}
	}
}

wpjam_register_option('wpjam-basic', [
	'title'			=> '移动主题',
	'plugin_page'	=> 'mobile-theme',
	'site_default'	=> true,
	'model'			=> 'WPJAM_Mobile_Theme'
]);