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);
}));
}
}