intval($cert['image_id'] ?? 0),
'title' => sanitize_text_field($cert['title'] ?? '')
];
}, $input);
}
function wpicp_sanitize_badges($input) {
if (!is_array($input)) return [];
return array_map(function($badge) {
return [
'image_id' => intval($badge['image_id'] ?? 0),
'url' => esc_url_raw($badge['url'] ?? '')
];
}, $input);
}
function wpicp_sanitize_array($input) {
if (!is_array($input)) return [];
return array_map('sanitize_text_field', $input);
}
function wpicp_sanitize_checkbox($input) {
return $input === '1' ? '1' : '0';
}
function wpicp_sanitize_tab_visibility($input) {
$default_tabs = [
'wpicp_license_tab' => '1',
'wpicp_certificates_tab' => '1',
'wpicp_badges_tab' => '1',
'wpicp_settings_tab' => '1'
];
if (!is_array($input)) return $default_tabs;
foreach ($default_tabs as $tab_id => $default_value) {
if ($tab_id === 'wpicp_settings_tab') {
$default_tabs[$tab_id] = '1'; // Settings tab 始终可见
} else {
$default_tabs[$tab_id] = isset($input[$tab_id]) && $input[$tab_id] === '1' ? '1' : '0';
}
}
$visible_count = array_sum(array_map('intval', $default_tabs));
if ($visible_count < 2) { // 确保至少保留一个非 Settings 的标签
$default_tabs['wpicp_license_tab'] = '1';
}
return $default_tabs;
}
add_action('admin_init', 'wpicp_subsite_settings');
function wpicp_subsite_settings() {
if (!is_network_admin()) {
add_settings_field('wpicp_license_subsite_field', __('ICP License', 'wpicp-license'), 'wpicp_license_subsite_field_callback', 'general', 'default');
add_settings_field('wpicp_wangan_subsite_field', __('Wangan License', 'wpicp-license'), 'wpicp_wangan_subsite_field_callback', 'general', 'default');
register_setting('general', 'wpicp_license', 'sanitize_text_field');
register_setting('general', 'wpicp_wangan', 'sanitize_text_field');
}
}
add_action('admin_enqueue_scripts', 'wpicp_enqueue_scripts');
function wpicp_enqueue_scripts($hook) {
if (strpos($hook, 'settings_page_wpicp_license_settings') !== false) {
wp_enqueue_media();
wp_enqueue_style('wpicp-admin-css', plugins_url('assets/css/admin.css', __FILE__), [], '1.8.0');
wp_enqueue_script('wpicp-admin-js', plugins_url('assets/js/admin.js', __FILE__), ['jquery'], '1.8.0', true);
}
}
function wpicp_license_section_callback() {
echo '
' . __('Manage your ICP and related license information here.', 'wpicp-license') . '
';
}
function wpicp_certificates_section_callback() {
echo '' . __('Add certificates with titles and images. Use [wpicp_certificates]
to display them (e.g., [wpicp_certificates id="0"] or [wpicp_certificates ids="0,1"]).', 'wpicp-license') . '
';
}
function wpicp_badges_section_callback() {
echo '' . __('Add custom badges or select presets. Use [wpicp_badges]
(e.g., [wpicp_badges id="0"] or [wpicp_badges ids="0,1"]).', 'wpicp-license') . '
';
}
function wpicp_settings_section_callback() {
echo '' . __('General settings for the WPICP License plugin.', 'wpicp-license') . '
';
}
function wpicp_license_field_callback() {
$value = is_multisite() ? get_site_option('wpicp_license') : get_option('wpicp_license');
echo ' ';
echo '' . __('Enter your ICP license number information. (Correct format?) ', 'wpicp-license') . '
';
}
function wpicp_wangan_field_callback() {
$wangan = is_multisite() ? get_site_option('wpicp_wangan') : get_option('wpicp_wangan');
$province = is_multisite() ? get_site_option('wpicp_province') : get_option('wpicp_province');
?>
__('Beijing', 'wpicp-license'), '津' => __('Tianjin', 'wpicp-license'), '冀' => __('Hebei', 'wpicp-license'),
'晋' => __('Shanxi', 'wpicp-license'), '蒙' => __('Inner Mongolia', 'wpicp-license'), '辽' => __('Liaoning', 'wpicp-license'),
'吉' => __('Jilin', 'wpicp-license'), '黑' => __('Heilongjiang', 'wpicp-license'), '沪' => __('Shanghai', 'wpicp-license'),
'苏' => __('Jiangsu', 'wpicp-license'), '浙' => __('Zhejiang', 'wpicp-license'), '皖' => __('Anhui', 'wpicp-license'),
'闽' => __('Fujian', 'wpicp-license'), '赣' => __('Jiangxi', 'wpicp-license'), '鲁' => __('Shandong', 'wpicp-license'),
'豫' => __('Henan', 'wpicp-license'), '鄂' => __('Hubei', 'wpicp-license'), '湘' => __('Hunan', 'wpicp-license'),
'粤' => __('Guangdong', 'wpicp-license'), '桂' => __('Guangxi', 'wpicp-license'), '琼' => __('Hainan', 'wpicp-license'),
'渝' => __('Chongqing', 'wpicp-license'), '川' => __('Sichuan', 'wpicp-license'), '黔' => __('Guizhou', 'wpicp-license'),
'滇' => __('Yunnan', 'wpicp-license'), '藏' => __('Tibet', 'wpicp-license'), '陕' => __('Shaanxi', 'wpicp-license'),
'甘' => __('Gansu', 'wpicp-license'), '青' => __('Qinghai', 'wpicp-license'), '宁' => __('Ningxia', 'wpicp-license'),
'新' => __('Xinjiang', 'wpicp-license')
];
foreach ($provinces as $abbr => $name) {
echo '' . esc_html($name) . ' ';
}
?>
';
echo '' . __('Use the shortcode [wpicp_company]
', 'wpicp-license') . '
';
}
function wpicp_email_field_callback() {
$value = is_multisite() ? get_site_option('wpicp_email') : get_option('wpicp_email');
echo ' ';
echo '' . __('Use the shortcode [wpicp_email]
', 'wpicp-license') . '
';
}
function wpicp_phone_field_callback() {
$value = is_multisite() ? get_site_option('wpicp_phone') : get_option('wpicp_phone');
echo ' ';
echo '' . __('Use the shortcode [wpicp_phone]
', 'wpicp-license') . '
';
}
function wpicp_edi_field_callback() {
$value = is_multisite() ? get_site_option('wpicp_edi') : get_option('wpicp_edi');
echo ' ';
echo '' . __('Use the shortcode [wpicp_edi]
', 'wpicp-license') . '
';
}
function wpicp_app_field_callback() {
$value = is_multisite() ? get_site_option('wpicp_app') : get_option('wpicp_app');
echo ' ';
echo '' . __('Use the shortcode [wpicp_app]
', 'wpicp-license') . '
';
}
function wpicp_miniapp_field_callback() {
$value = is_multisite() ? get_site_option('wpicp_miniapp') : get_option('wpicp_miniapp');
echo ' ';
echo '' . __('Use the shortcode [wpicp_miniapp]
', 'wpicp-license') . '
';
}
function wpicp_certificates_field_callback() {
$certificates = is_multisite() ? get_site_option('wpicp_certificates', []) : get_option('wpicp_certificates', []);
if (!is_array($certificates)) $certificates = [];
?>
'publish']);
?>
ID) . '"' . selected($page_id, $page->ID, false) . '>' . esc_html($page->post_title) . '';
} ?>
[
'label' => __('Government Certifications', 'wpicp-license'),
'items' => [
'miit' => ['title' => __('MIIT ICP Filing', 'wpicp-license'), 'url' => 'https://beian.miit.gov.cn/', 'image' => plugins_url('/assets/images/miit.jpg', __FILE__)],
'psb' => ['title' => __('Public Security Bureau', 'wpicp-license'), 'url' => 'https://www.beian.gov.cn/', 'image' => plugins_url('/assets/images/psb.jpg', __FILE__)],
'12377' => ['title' => __('12377 Reporting', 'wpicp-license'), 'url' => 'https://www.12377.cn/', 'image' => plugins_url('/assets/images/12377.jpg', __FILE__)],
'wenming' => ['title' => __('China Civilization Network', 'wpicp-license'), 'url' => 'http://www.wenming.cn/', 'image' => plugins_url('/assets/images/wenming.jpg', __FILE__)],
],
],
'cybersecurity' => [
'label' => __('Cybersecurity Certifications', 'wpicp-license'),
'items' => [
'piyao' => ['title' => __('Piyao Rumors', 'wpicp-license'), 'url' => 'https://www.piyao.org.cn/', 'image' => plugins_url('/assets/images/piyao.jpg', __FILE__)],
'cac' => ['title' => __('Cyberspace Administration', 'wpicp-license'), 'url' => 'http://www.cac.gov.cn/', 'image' => plugins_url('/assets/images/cac.jpg', __FILE__)],
'cnca' => ['title' => __('CNCA Certification', 'wpicp-license'), 'url' => 'http://www.cnca.gov.cn/', 'image' => plugins_url('/assets/images/cnca.jpg', __FILE__)],
],
],
'trustworthiness' => [
'label' => __('Trustworthiness Certifications', 'wpicp-license'),
'items' => [
'knet' => ['title' => __('Knet Trust', 'wpicp-license'), 'url' => 'https://ss.knet.cn/', 'image' => plugins_url('/assets/images/knet.jpg', __FILE__)],
'szcert' => ['title' => __('SZCert', 'wpicp-license'), 'url' => 'http://szcert.ebs.org.cn/', 'image' => plugins_url('/assets/images/szcert.jpg', __FILE__)],
'sz315' => ['title' => __('SZ315 Integrity', 'wpicp-license'), 'url' => 'https://www.sz315.org/', 'image' => plugins_url('/assets/images/sz315.jpg', __FILE__)],
'trustasia' => ['title' => __('TrustAsia', 'wpicp-license'), 'url' => 'https://www.trustasia.com/', 'image' => plugins_url('/assets/images/trustasia.jpg', __FILE__)],
],
],
];
?>
';
echo '' . __('Enable to allow subsites to override network settings.', 'wpicp-license') . ' ';
if (WP_DEBUG) {
error_log('WPICP License: Allow Subsite Override displayed as - ' . $value);
}
}
function wpicp_default_image_size_callback() {
$value = is_multisite() ? get_site_option('wpicp_default_image_size', 'thumbnail') : get_option('wpicp_default_image_size', 'thumbnail');
?>
>
>
';
echo '' . __('Add a custom CSS class to the shortcode output for styling.', 'wpicp-license') . '
';
}
function wpicp_tab_visibility_callback() {
$visibility = is_multisite() ? get_site_option('wpicp_tab_visibility', ['wpicp_license_tab' => '1', 'wpicp_certificates_tab' => '1', 'wpicp_badges_tab' => '1', 'wpicp_settings_tab' => '1']) : get_option('wpicp_tab_visibility', ['wpicp_license_tab' => '1', 'wpicp_certificates_tab' => '1', 'wpicp_badges_tab' => '1', 'wpicp_settings_tab' => '1']);
$tabs = [
'wpicp_license_tab' => __('ICP License Number', 'wpicp-license'),
'wpicp_certificates_tab' => __('Certificates Center', 'wpicp-license'),
'wpicp_badges_tab' => __('Badges', 'wpicp-license'),
];
foreach ($tabs as $tab_id => $label) {
$checked = isset($visibility[$tab_id]) && $visibility[$tab_id] === '1' ? 'checked' : '';
?>
/>
';
echo '' . __('Uncheck to hide the corresponding tab from the settings page. The Settings tab is always visible.', 'wpicp-license') . '
';
}
function wpicp_license_subsite_field_callback() {
$site_value = get_option('wpicp_license');
$network_value = get_site_option('wpicp_license');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1') === '1'; // 默认 '1',但确保数据库优先
$value = $allow_override ? ($site_value ?: $network_value) : $network_value;
$disabled = is_multisite() && !$allow_override ? ' disabled' : '';
echo ' ';
echo '' . __('Enter your ICP license number information.', 'wpicp-license');
if (is_multisite() && !$allow_override) echo ' ' . __('Network settings are enforced.', 'wpicp-license');
echo '
';
}
function wpicp_wangan_subsite_field_callback() {
$site_value = get_option('wpicp_wangan');
$network_value = get_site_option('wpicp_wangan');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1') === '1';
$value = $allow_override ? ($site_value ?: $network_value) : $network_value;
$disabled = is_multisite() && !$allow_override ? ' disabled' : '';
echo ' ';
echo '' . __('Enter your Wangan license number.', 'wpicp-license');
if (is_multisite() && !$allow_override) echo ' ' . __('Network settings are enforced.', 'wpicp-license');
echo '
';
}
function wpicp_license_settings_page() {
if (is_multisite() && !current_user_can('manage_network_options')) {
wp_die(__('You do not have permission to access this page.', 'wpicp-license'));
}
$visibility = is_multisite() ? get_site_option('wpicp_tab_visibility', ['wpicp_license_tab' => '1', 'wpicp_certificates_tab' => '1', 'wpicp_badges_tab' => '1', 'wpicp_settings_tab' => '1']) : get_option('wpicp_tab_visibility', ['wpicp_license_tab' => '1', 'wpicp_certificates_tab' => '1', 'wpicp_badges_tab' => '1', 'wpicp_settings_tab' => '1']);
$tabs = [
'wpicp_license_tab' => ['label' => __('ICP License Number', 'wpicp-license'), 'section' => 'wpicp_license_tab'],
'wpicp_certificates_tab' => ['label' => __('Certificates Center', 'wpicp-license'), 'section' => 'wpicp_certificates_tab'],
'wpicp_badges_tab' => ['label' => __('Badges', 'wpicp-license'), 'section' => 'wpicp_badges_tab'],
'wpicp_settings_tab' => ['label' => __('Settings', 'wpicp-license'), 'section' => 'wpicp_settings_tab'],
];
?>
' . esc_html($license) . '';
}
return '';
}
add_shortcode('wpicp_wangan', 'wpicp_wangan_shortcode');
function wpicp_wangan_shortcode() {
$site_wangan = get_option('wpicp_wangan');
$network_wangan = get_site_option('wpicp_wangan');
$site_province = get_option('wpicp_province');
$network_province = get_site_option('wpicp_province');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1') === '1';
$wangan = (is_multisite() && $allow_override) ? ($site_wangan ?: $network_wangan) : $network_wangan;
$province = (is_multisite() && $allow_override) ? ($site_province ?: $network_province) : $network_province;
if (!$wangan || !$province) return '';
$text = ' ' . esc_html($province) . '公网安备' . esc_html($wangan) . '号';
return '' . $text . ' ';
}
add_shortcode('wpicp_province', 'wpicp_province_shortcode');
function wpicp_province_shortcode() {
$site_value = get_option('wpicp_province');
$network_value = get_site_option('wpicp_province');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1');
$province = (is_multisite() && $allow_override) ? ($site_value ?: $network_value) : $network_value;
$provinces = [
'京' => __('Beijing', 'wpicp-license'), '津' => __('Tianjin', 'wpicp-license'), '冀' => __('Hebei', 'wpicp-license'),
'晋' => __('Shanxi', 'wpicp-license'), '蒙' => __('Inner Mongolia', 'wpicp-license'), '辽' => __('Liaoning', 'wpicp-license'),
'吉' => __('Jilin', 'wpicp-license'), '黑' => __('Heilongjiang', 'wpicp-license'), '沪' => __('Shanghai', 'wpicp-license'),
'苏' => __('Jiangsu', 'wpicp-license'), '浙' => __('Zhejiang', 'wpicp-license'), '皖' => __('Anhui', 'wpicp-license'),
'闽' => __('Fujian', 'wpicp-license'), '赣' => __('Jiangxi', 'wpicp-license'), '鲁' => __('Shandong', 'wpicp-license'),
'豫' => __('Henan', 'wpicp-license'), '鄂' => __('Hubei', 'wpicp-license'), '湘' => __('Hunan', 'wpicp-license'),
'粤' => __('Guangdong', 'wpicp-license'), '桂' => __('Guangxi', 'wpicp-license'), '琼' => __('Hainan', 'wpicp-license'),
'渝' => __('Chongqing', 'wpicp-license'), '川' => __('Sichuan', 'wpicp-license'), '黔' => __('Guizhou', 'wpicp-license'),
'滇' => __('Yunnan', 'wpicp-license'), '藏' => __('Tibet', 'wpicp-license'), '陕' => __('Shaanxi', 'wpicp-license'),
'甘' => __('Gansu', 'wpicp-license'), '青' => __('Qinghai', 'wpicp-license'), '宁' => __('Ningxia', 'wpicp-license'),
'新' => __('Xinjiang', 'wpicp-license')
];
return isset($provinces[$province]) ? esc_html($provinces[$province]) : '';
}
add_shortcode('wpicp_p', 'wpicp_province_abbr_shortcode');
function wpicp_province_abbr_shortcode() {
$site_value = get_option('wpicp_province');
$network_value = get_site_option('wpicp_province');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1');
$province = (is_multisite() && $allow_override) ? ($site_value ?: $network_value) : $network_value;
return $province ? esc_html($province) : '';
}
add_shortcode('wpicp_company', 'wpicp_company_shortcode');
function wpicp_company_shortcode() {
$site_value = get_option('wpicp_company');
$network_value = get_site_option('wpicp_company');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1');
$company = (is_multisite() && $allow_override) ? ($site_value ?: $network_value) : $network_value;
return $company ? esc_html($company) : '';
}
add_shortcode('wpicp_email', 'wpicp_email_shortcode');
function wpicp_email_shortcode() {
$site_value = get_option('wpicp_email');
$network_value = get_site_option('wpicp_email');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1');
$email = (is_multisite() && $allow_override) ? ($site_value ?: $network_value) : $network_value;
return $email ? esc_html($email) : '';
}
add_shortcode('wpicp_phone', 'wpicp_phone_shortcode');
function wpicp_phone_shortcode() {
$site_value = get_option('wpicp_phone');
$network_value = get_site_option('wpicp_phone');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1');
$phone = (is_multisite() && $allow_override) ? ($site_value ?: $network_value) : $network_value;
return $phone ? esc_html($phone) : '';
}
add_shortcode('wpicp_edi', 'wpicp_edi_shortcode');
function wpicp_edi_shortcode() {
$site_value = get_option('wpicp_edi');
$network_value = get_site_option('wpicp_edi');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1');
$edi = (is_multisite() && $allow_override) ? ($site_value ?: $network_value) : $network_value;
return $edi ? esc_html($edi) : '';
}
add_shortcode('wpicp_app', 'wpicp_app_shortcode');
function wpicp_app_shortcode() {
$site_value = get_option('wpicp_app');
$network_value = get_site_option('wpicp_app');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1');
$app = (is_multisite() && $allow_override) ? ($site_value ?: $network_value) : $network_value;
return $app ? esc_html($app) : '';
}
add_shortcode('wpicp_miniapp', 'wpicp_miniapp_shortcode');
function wpicp_miniapp_shortcode() {
$site_value = get_option('wpicp_miniapp');
$network_value = get_site_option('wpicp_miniapp');
$allow_override = get_site_option('wpicp_allow_subsite_override', '1');
$miniapp = (is_multisite() && $allow_override) ? ($site_value ?: $network_value) : $network_value;
return $miniapp ? esc_html($miniapp) : '';
}
add_shortcode('wpicp_certificates', 'wpicp_certificates_shortcode');
function wpicp_certificates_shortcode($atts) {
$atts = shortcode_atts(['full' => 'false', 'id' => '', 'ids' => ''], $atts);
$certificates = is_multisite() ? get_site_option('wpicp_certificates', []) : get_option('wpicp_certificates', []);
$page_id = is_multisite() ? get_site_option('wpicp_certificates_page', 0) : get_option('wpicp_certificates_page', 0);
$default_size = is_multisite() ? get_site_option('wpicp_default_image_size', 'thumbnail') : get_option('wpicp_default_image_size', 'thumbnail');
$custom_class = is_multisite() ? get_site_option('wpicp_custom_css_class', '') : get_option('wpicp_custom_css_class', '');
if (!is_array($certificates) || empty($certificates)) return '';
if ($atts['id'] !== '') {
$index = intval($atts['id']);
$certificates = isset($certificates[$index]) ? [$certificates[$index]] : [];
} elseif ($atts['ids'] !== '') {
$ids = array_map('intval', explode(',', $atts['ids']));
$certificates = array_filter($certificates, function($key) use ($ids) {
return in_array($key, $ids);
}, ARRAY_FILTER_USE_KEY);
}
if (empty($certificates)) return '';
$size = $atts['full'] === 'true' ? 'full' : $default_size;
$output = '';
$page_url = $page_id ? get_permalink($page_id) : '#';
foreach ($certificates as $cert) {
$image = wp_get_attachment_image($cert['image_id'], $size);
$title = '
' . esc_html($cert['title']) . '
';
$content = $atts['full'] === 'true' ? $image . $title : '
' . $image . $title . ' ';
$output .= '
' . $content . '
';
}
$output .= '
';
return $output;
}
add_shortcode('wpicp_badges', 'wpicp_badges_shortcode');
function wpicp_badges_shortcode($atts) {
$atts = shortcode_atts(['id' => '', 'ids' => '', 'preset' => 'false'], $atts);
$badges = is_multisite() ? get_site_option('wpicp_badges', []) : get_option('wpicp_badges', []);
$selected_presets = is_multisite() ? get_site_option('wpicp_selected_presets', []) : get_option('wpicp_selected_presets', []);
$default_size = is_multisite() ? get_site_option('wpicp_default_image_size', 'thumbnail') : get_option('wpicp_default_image_size', 'thumbnail');
$custom_class = is_multisite() ? get_site_option('wpicp_custom_css_class', '') : get_option('wpicp_custom_css_class', '');
if (!is_array($badges)) $badges = [];
if (!is_array($selected_presets)) $selected_presets = [];
$presets = [
'miit' => ['title' => __('MIIT ICP Filing', 'wpicp-license'), 'url' => 'https://beian.miit.gov.cn/', 'image' => plugins_url('/assets/images/miit.jpg', __FILE__)],
'psb' => ['title' => __('Public Security Bureau', 'wpicp-license'), 'url' => 'https://www.beian.gov.cn/', 'image' => plugins_url('/assets/images/psb.jpg', __FILE__)],
'12377' => ['title' => __('12377 Reporting', 'wpicp-license'), 'url' => 'https://www.12377.cn/', 'image' => plugins_url('/assets/images/12377.jpg', __FILE__)],
'wenming' => ['title' => __('China Civilization Network', 'wpicp-license'), 'url' => 'http://www.wenming.cn/', 'image' => plugins_url('/assets/images/wenming.jpg', __FILE__)],
'piyao' => ['title' => __('Piyao Rumors', 'wpicp-license'), 'url' => 'https://www.piyao.org.cn/', 'image' => plugins_url('/assets/images/piyao.jpg', __FILE__)],
'cac' => ['title' => __('Cyberspace Administration', 'wpicp-license'), 'url' => 'http://www.cac.gov.cn/', 'image' => plugins_url('/assets/images/cac.jpg', __FILE__)],
'cnca' => ['title' => __('CNCA Certification', 'wpicp-license'), 'url' => 'http://www.cnca.gov.cn/', 'image' => plugins_url('/assets/images/cnca.jpg', __FILE__)],
'knet' => ['title' => __('Knet Trust', 'wpicp-license'), 'url' => 'https://ss.knet.cn/', 'image' => plugins_url('/assets/images/knet.jpg', __FILE__)],
'szcert' => ['title' => __('SZCert', 'wpicp-license'), 'url' => 'http://szcert.ebs.org.cn/', 'image' => plugins_url('/assets/images/szcert.jpg', __FILE__)],
'sz315' => ['title' => __('SZ315 Integrity', 'wpicp-license'), 'url' => 'https://www.sz315.org/', 'image' => plugins_url('/assets/images/sz315.jpg', __FILE__)],
'trustasia' => ['title' => __('TrustAsia', 'wpicp-license'), 'url' => 'https://www.trustasia.com/', 'image' => plugins_url('/assets/images/trustasia.jpg', __FILE__)],
];
$all_badges = $badges;
if ($atts['preset'] !== 'true') {
foreach ($selected_presets as $key) {
if (isset($presets[$key])) {
$all_badges[] = ['image_id' => null, 'url' => $presets[$key]['url'], 'preset_image' => $presets[$key]['image']];
}
}
}
if (empty($all_badges)) return '';
if ($atts['id'] !== '') {
$index = intval($atts['id']);
$all_badges = isset($all_badges[$index]) ? [$all_badges[$index]] : [];
} elseif ($atts['ids'] !== '') {
$ids = array_map('intval', explode(',', $atts['ids']));
$all_badges = array_filter($all_badges, function($key) use ($ids) {
return in_array($key, $ids);
}, ARRAY_FILTER_USE_KEY);
}
if (empty($all_badges)) return '';
$output = '';
foreach ($all_badges as $badge) {
$image = isset($badge['preset_image']) ? '
' : wp_get_attachment_image($badge['image_id'], $default_size);
$output .= '
' . $image . ' ';
}
$output .= '
';
return $output;
}