ID) : []; if ($settings === [] && !metadata_exists('post', (int) $post->ID, 'page_links_nofollow_s')) { $settings['nofollow_s'] = true; $settings['submit_sign_s'] = true; } wp_nonce_field(self::NONCE_ACTION, self::NONCE_NAME); $terms = get_terms(['taxonomy' => 'link_category', 'hide_empty' => false]); $terms = is_wp_error($terms) ? [] : $terms; $selected_categories = array_map('absint', (array) ($settings['category'] ?? [])); $submit_categories = array_map('absint', (array) ($settings['submit_cats'] ?? [])); $search_types = (array) ($settings['search_types'] ?? []); ?> !empty($raw['page_links_content_s']), 'page_links_content_position' => in_array($position, ['top', 'bottom'], true) ? $position : 'top', 'page_links_search_s' => !empty($raw['page_links_search_s']), 'page_links_search_types' => $search_types, 'page_links_category' => $term_ids, 'page_links_style' => in_array($style, ['card', 'bigcard', 'image'], true) ? $style : 'card', 'page_links_limit' => max(0, min(500, (int) ($raw['page_links_limit'] ?? 0))), 'page_links_orderby' => in_array($orderby, ['name', 'updated', 'rating', 'rand'], true) ? $orderby : 'name', 'page_links_order' => in_array($order, ['ASC', 'DESC'], true) ? $order : 'ASC', 'page_links_go_s' => !empty($raw['page_links_go_s']), 'page_links_blank_s' => !empty($raw['page_links_blank_s']), 'page_links_nofollow_s' => !empty($raw['page_links_nofollow_s']), 'page_links_submit_s' => !empty($raw['page_links_submit_s']), 'page_links_submit_sign_s' => !empty($raw['page_links_submit_sign_s']), 'page_links_submit_cats' => $submit_term_ids, 'page_links_submit_title' => sanitize_text_field((string) ($raw['page_links_submit_title'] ?? '')), 'page_links_submit_dec' => wp_kses_post((string) ($raw['page_links_submit_dec'] ?? '')), ]; foreach ($values as $key => $value) { update_post_meta($post_id, $key, $value); } } private static function is_links_page(\WP_Post $post): bool { return $post->post_name === 'friends' || get_page_template_slug($post->ID) === 'templates/pages/page-friends.php'; } /** @return array */ private static function search_types(): array { return [ 'self' => __('站内', 'jio'), 'baidu' => __('百度', 'jio'), 'google' => __('谷歌', 'jio'), 'bing' => __('必应', 'jio'), 'sogou' => __('搜狗', 'jio'), '360' => '360', ]; } /** @param mixed $raw @return list */ private static function sanitize_term_ids($raw): array { $ids = array_values(array_unique(array_filter(array_map('absint', (array) $raw)))); return array_values(array_filter($ids, static function (int $id): bool { $term = get_term($id, 'link_category'); return $term && !is_wp_error($term); })); } }