settings = get_settings();
$this->init();
}
/**
* 初始化文风字体功能
*/
private function init() {
if (!empty($this->settings['windfonts']) && $this->settings['windfonts'] != 'off') {
$this->load_typography();
}
if (!empty($this->settings['windfonts']) && $this->settings['windfonts'] == 'optimize') {
add_action('init', function () {
wp_enqueue_style('windfonts-optimize', CHINA_YES_PLUGIN_URL . 'assets/css/fonts.css', [], CHINA_YES_VERSION);
});
}
if (!empty($this->settings['windfonts']) && $this->settings['windfonts'] == 'on') {
add_action('wp_head', [$this, 'load_windfonts']);
add_action('admin_head', [$this, 'load_windfonts']);
}
if (!empty($this->settings['windfonts']) && $this->settings['windfonts'] == 'frontend') {
add_action('wp_head', [$this, 'load_windfonts']);
}
}
/**
* 加载文风字体
*/
public function load_windfonts() {
echo <<
HTML;
$loaded = [];
foreach ((array) $this->settings['windfonts_list'] as $font) {
if (empty($font['enable'])) {
continue;
}
if (empty($font['family'])) {
continue;
}
if (in_array($font['css'], $loaded)) {
continue;
}
echo sprintf(<<
HTML
,
$font['css'],
htmlspecialchars_decode($font['selector']),
$font['style'],
$font['weight'],
$font['family']
);
$loaded[] = $font['css'];
}
}
/**
* 加载排印优化
*/
public function load_typography() {
// 支持中文排版段首缩进 2em
if (in_array('indent', (array) $this->settings['windfonts_typography'])) {
add_action('wp_head', function () {
echo '';
});
}
// 支持中文排版两端对齐
if (in_array('align', (array) $this->settings['windfonts_typography'])) {
add_action('wp_head', function () {
if (is_single()) { // 仅在文章页面生效
echo '';
}
});
}
}
}