/** * Filter the link query results. * * @param array $results * * @return array */ public function wp_link_query(array $results) { $post_type = papi_get_post_type(); foreach ($results as $index => $value) { $name = papi_get_page_type_name($value['ID']); if (empty($name)) { $name = papi_filter_settings_standard_page_type_name($post_type); } $results[$index]['info'] = esc_html($name); } return $results; }
<?php $parent_page_type = papi_get_entry_type_by_id(papi_get_entry_type_id()); $page_types = papi_get_all_page_types($post_type_name); $show_standard = papi_filter_settings_show_standard_page_type($post_type_name); if ($parent_page_type instanceof Papi_Page_Type) { $child_types = $parent_page_type->get_child_types(); $page_types = empty($child_types) ? $page_types : $child_types; if (!$show_standard) { $show_standard = $parent_page_type->standard_type; } } if ($show_standard) { $id = sprintf('papi-standard-%s-type', $post_type_name); $page_type = new Papi_Page_Type($id); $page_type->id = $id; $page_type->name = papi_filter_settings_standard_page_type_name($post_type_name); $page_type->description = papi_filter_settings_standard_page_type_description($post_type_name); $page_type->thumbnail = papi_filter_settings_standard_page_type_thumbnail($post_type_name); $page_type->post_type = [$post_type_name]; $page_types[] = $page_type; } usort($page_types, function ($a, $b) { return strcmp($a->name, $b->name); }); $page_types = papi_sort_order(array_reverse($page_types)); $use_thumbnail = false; foreach ($page_types as $key => $page_type) { if (!empty($page_type->get_thumbnail())) { $use_thumbnail = true; } }
/** * Filter page types in post type list. */ public function restrict_page_types() { $post_types = papi_get_post_types(); if (in_array($this->post_type, $post_types, true)) { $page_types = papi_get_all_page_types($this->post_type); $page_types = array_map(function ($page_type) { return ['name' => $page_type->name, 'value' => $page_type->get_id()]; }, $page_types); // Add the standard page that isn't a real page type. if (papi_filter_settings_show_standard_page_type_in_filter($this->post_type)) { $page_types[] = ['name' => papi_filter_settings_standard_page_type_name($this->post_type), 'value' => 'papi-standard-page']; } usort($page_types, function ($a, $b) { return strcmp(strtolower($a['name']), strtolower($b['name'])); }); ?> <select name="page_type" class="postform"> <option value="0" selected><?php esc_html_e('All types', 'papi'); ?> </option> <?php foreach ($page_types as $page_type) { printf('<option value="%s" %s>%s</option>', esc_attr($page_type['value']), papi_get_qs('page_type') === $page_type['value'] ? ' selected' : '', esc_html($page_type['name'])); } ?> </select> <?php } }