From 6f064eaafa63ae033c59015964533b1e432ec5f3 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 28 May 2022 19:50:26 +0900 Subject: [PATCH] =?UTF-8?q?WP6.0=20=E5=AF=BE=E5=BF=9C=E3=83=81=E3=82=A7?= =?UTF-8?q?=E3=83=83=E3=82=AF=20=E8=BB=BD=E5=BE=AE=E3=81=AA=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20=E3=83=BB=E3=83=86=E3=83=B3=E3=83=97=E3=83=AC?= =?UTF-8?q?=E3=83=BC=E3=83=88=E3=81=AE=E3=83=9F=E3=82=B9=E3=82=BF=E3=82=A4?= =?UTF-8?q?=E3=83=97=E3=81=AE=E4=BF=AE=E6=AD=A3=20=E3=83=BB=E3=83=A1?= =?UTF-8?q?=E3=82=BD=E3=83=83=E3=83=89=E3=81=AE=E6=88=BB=E3=82=8A=E5=9E=8B?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E3=81=AE=E8=BF=BD=E5=8A=A0=20=E3=83=BB?= =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=81=AA=E5=A4=89=E6=95=B0=E4=BB=A3=E5=85=A5?= =?UTF-8?q?=E3=81=AE=E5=89=8A=E9=99=A4=20=E3=83=BB=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E3=82=A4=E3=83=B3=E3=82=AF=E3=83=AB=E3=83=BC?= =?UTF-8?q?=E3=83=89=E3=81=AE=E6=9D=A1=E4=BB=B6=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- archive-post-order-plus.php | 2 +- class/class.apop.apop_ui.php | 849 ++++++++++++++++++----------------- readme.txt | 19 +- 3 files changed, 442 insertions(+), 428 deletions(-) diff --git a/archive-post-order-plus.php b/archive-post-order-plus.php index 126b9d7..5bd1b21 100644 --- a/archive-post-order-plus.php +++ b/archive-post-order-plus.php @@ -5,7 +5,7 @@ Plugin URI: https://develop.n-k-y.net/wordpress/wp_plugin/apop/ Author: NBK45 Author URI: https://develop.n-k-y.net Description: Archive Post Order Plus は「最新の投稿」「検索結果」「カテゴリー」「タグ」「カスタム分類」の投稿記事の表示順をドラッグで並べ替えて設定するプラグインです。 -Version: 1.2.0 +Version: 1.2.1 License: GPLv2 Text Domain: ArchivePostOrderPlus Domain Path: /languages diff --git a/class/class.apop.apop_ui.php b/class/class.apop.apop_ui.php index 5b00fe6..d7b7f1f 100644 --- a/class/class.apop.apop_ui.php +++ b/class/class.apop.apop_ui.php @@ -1,519 +1,520 @@ $post_data ) { - $order = $i + 1; - $no_order = self::is_sort_post_registered( $post_data->ID, $meta_key ) ? '' : ' no-order'; - echo '
  • ' - . '' . esc_html( $order ) . '' . esc_html( $post_data->post_title ) - . ' + public static function get_all_search_normal_posts($key) { + $meta_key = '_apop_post_' . $key; + $args = self::create_search_normal_args($meta_key, $key); + $posts_data = get_posts($args); + foreach ($posts_data as $i => $post_data) { + $order = $i + 1; + $no_order = self::is_sort_post_registered($post_data->ID, $meta_key) ? '' : ' no-order'; + echo '
  • ' + . '' . esc_html($order) . '' . esc_html($post_data->post_title) + . '
  • '; - } - } + } + } - private static function create_search_normal_args( $meta_key, $key = 'normal' ): array { - $post_type = array( 'post' ); - if ( $key == 'search' ) { - $add_post_type = array_values( get_post_types( array( - 'public' => true, - '_builtin' => false, - ) - ) - ); - $post_type = array_merge( $post_type, $add_post_type ); - } + private static function create_search_normal_args($meta_key, $key = 'normal'): array { + $post_type = array('post'); + if ($key == 'search') { + $add_post_type = array_values(get_post_types(array( + 'public' => true, + '_builtin' => false, + ) + ) + ); + $post_type = array_merge($post_type, $add_post_type); + } - return array( - 'post_type' => $post_type, - 'post_status' => array( 'publish', 'draft' ), - 'posts_per_page' => - 1, - 'orderby' => 'meta_value_num', - 'order' => 'ASC', - 'meta_query' => array( - 'relation' => 'OR', - array( - 'key' => $meta_key, - 'compare' => 'EXISTS', - ), - array( - 'key' => $meta_key, - 'compare' => 'NOT EXISTS', - ), - ), - ); - } + return array( + 'post_type' => $post_type, + 'post_status' => array('publish', 'draft'), + 'posts_per_page' => -1, + 'orderby' => 'meta_value_num', + 'order' => 'ASC', + 'meta_query' => array( + 'relation' => 'OR', + array( + 'key' => $meta_key, + 'compare' => 'EXISTS', + ), + array( + 'key' => $meta_key, + 'compare' => 'NOT EXISTS', + ), + ), + ); + } - private static function get_all_custom_posts() { - $custom_posts = array_values( get_post_types( array( 'public' => true, '_builtin' => false ) ) ); - $custom_post_data = array(); - foreach ( $custom_posts as $custom_post ) { - $label = get_post_type_object( $custom_post )->label; - $custom_post_data[ $custom_post ] = $label; - } + private static function get_all_custom_posts(): array { + $custom_posts = array_values(get_post_types(array('public' => true, '_builtin' => false))); + $custom_post_data = array(); + foreach ($custom_posts as $custom_post) { + $label = get_post_type_object($custom_post)->label; + $custom_post_data[$custom_post] = $label; + } - return $custom_post_data; - } + return $custom_post_data; + } - private static function get_all_taxonomies( $key ) { - if ( $key !== 'taxonomy' ) { - return get_terms( array( 'taxonomy' => $key, 'get' => 'all' ) ); - } - $all_custom_tax = get_taxonomies( array( 'public' => true, '_builtin' => false ) ); - $custom_tax_list = array(); - foreach ( $all_custom_tax as $custom_tax ) { - $custom_tax_list = array_merge( $custom_tax_list, get_terms( array( - 'taxonomy' => $custom_tax, - 'get' => 'all' - ) ) ); - } + private static function get_all_taxonomies($key) { + if ($key !== 'taxonomy') { + return get_terms(array('taxonomy' => $key, 'get' => 'all')); + } + $all_custom_tax = get_taxonomies(array('public' => true, '_builtin' => false)); + $custom_tax_list = array(); + foreach ($all_custom_tax as $custom_tax) { + $custom_tax_list = array_merge($custom_tax_list, get_terms(array( + 'taxonomy' => $custom_tax, + 'get' => 'all' + ))); + } - return $custom_tax_list; - } + return $custom_tax_list; + } - public static function get_cat_tag_list( $target, $key ): array { - $opt = get_option( '_apop_' . $target . '_order' ); + public static function get_cat_tag_list($target, $key): array { + $opt = get_option('_apop_' . $target . '_order'); - if ( ! isset( $opt['target_cat'] ) ) { - return array(); - } + if (!isset($opt['target_cat'])) { + return array(); + } - if ( $key == 'taxonomy' ) { - return self::create_custom_tax_term( $opt ); - } else { - return self::create_tax_term( $opt, $key ); - } - } + if ($key == 'taxonomy') { + return self::create_custom_tax_term($opt); + } else { + return self::create_tax_term($opt, $key); + } + } - private static function create_custom_tax_term( $opt ): array { - $tax_data = array(); - foreach ( $opt['target_cat'] as $tax_id => $status ) { - //フラグが立っているカスタムタクソノミーは情報を取得する - if ( $status ) { - $args = array( - 'taxonomy' => get_term( $tax_id )->taxonomy, - 'hide_empty' => 0, - 'include' => $tax_id, - ); - $tax_data = array_merge( $tax_data, get_terms( $args ) ); + private static function create_custom_tax_term($opt): array { + $tax_data = array(); + foreach ($opt['target_cat'] as $tax_id => $status) { + //フラグが立っているカスタムタクソノミーは情報を取得する + if ($status) { + $args = array( + 'taxonomy' => get_term($tax_id)->taxonomy, + 'hide_empty' => 0, + 'include' => $tax_id, + ); + $tax_data = array_merge($tax_data, get_terms($args)); - } - } - if ( count( $tax_data ) > 0 ) { - return $tax_data; - } + } + } + if (count($tax_data) > 0) { + return $tax_data; + } - return array(); - } + return array(); + } - private static function create_tax_term( $opt, $key ) { - $include = array(); - foreach ( $opt['target_cat'] as $tax_id => $status ) { - //フラグが立っているタクソノミーIDを取得 - if ( $status ) { - $include[] = $tax_id; - } - } - $include_tax = implode( ',', $include ); - if ( ! empty( $include_tax ) ) { - $args = array( - 'taxonomy' => $key, - 'hide_empty' => 0, - 'include' => $include_tax, - ); + private static function create_tax_term($opt, $key) { + $include = array(); + foreach ($opt['target_cat'] as $tax_id => $status) { + //フラグが立っているタクソノミーIDを取得 + if ($status) { + $include[] = $tax_id; + } + } + $include_tax = implode(',', $include); + if (!empty($include_tax)) { + $args = array( + 'taxonomy' => $key, + 'hide_empty' => 0, + 'include' => $include_tax, + ); - return get_terms( $args ); - } + return get_terms($args); + } - return array(); - } + return array(); + } - public static function create_order_list( $tax_data, $tax_key ): string { - $return_data = self::get_sort_post_list( $tax_data->term_id, $tax_key, $tax_data->taxonomy ); - $list = array(); - foreach ( $return_data['data'] as $key => $target_post ) { - $sort_num = $key + 1; - $no_order = self::is_sort_post_registered( $target_post->ID, $return_data['meta_key'] ) ? '' : ' no-order'; - $list[] = ' -
  • ' . '' . esc_html( $sort_num ) . '' . get_the_title( $target_post->ID ) . ' + public static function create_order_list($tax_data, $tax_key): string { + $return_data = self::get_sort_post_list($tax_data->term_id, $tax_key, $tax_data->taxonomy); + $list = array(); + foreach ($return_data['data'] as $key => $target_post) { + $sort_num = $key + 1; + $no_order = self::is_sort_post_registered($target_post->ID, $return_data['meta_key']) ? '' : ' no-order'; + $list[] = ' +
  • ' . '' . esc_html($sort_num) . '' . get_the_title($target_post->ID) . ' +name="_apop_post_' . esc_html(self::create_post_sort_key($tax_data->taxonomy, $tax_key)) . '[post_sort][' . esc_html($tax_data->term_id) . '][' . esc_html($target_post->ID) . ']" +value="' . esc_html($sort_num) . '">
  • '; - } + } - return implode( PHP_EOL, $list ); - } + return implode(PHP_EOL, $list); + } - private static function is_sort_post_registered( $id, $key ): bool { - if ( get_post_meta( $id, $key, true ) ) { - return true; - } + private static function is_sort_post_registered($id, $key): bool { + if (get_post_meta($id, $key, true)) { + return true; + } - return false; - } + return false; + } - private static function get_sort_post_list( $tax_id, $search_param, $tax_name ): array { - $post_types = array( 'post' ); - $custom_post_types = array_values( get_post_types( array( 'public' => true, '_builtin' => false ) ) ); - $args = array( - 'post_type' => array_merge( $post_types, $custom_post_types ), - 'post_status' => array( 'publish', 'draft' ), - 'posts_per_page' => - 1, - 'orderby' => 'meta_value_num', - 'order' => 'ASC', - ); - $meta_key = '_apop_post_' . self::create_post_sort_key( $tax_name, $search_param ) . '_' . $tax_id; - self::create_sort_post_list_meta_query( $args, $meta_key ); - self::create_post_tax_query( $args, $search_param, $tax_name, $tax_id ); + private static function get_sort_post_list($tax_id, $search_param, $tax_name): array { + $post_types = array('post'); + $custom_post_types = array_values(get_post_types(array('public' => true, '_builtin' => false))); + $args = array( + 'post_type' => array_merge($post_types, $custom_post_types), + 'post_status' => array('publish', 'draft'), + 'posts_per_page' => -1, + 'orderby' => 'meta_value_num', + 'order' => 'ASC', + ); + $meta_key = '_apop_post_' . self::create_post_sort_key($tax_name, $search_param) . '_' . $tax_id; + self::create_sort_post_list_meta_query($args, $meta_key); + self::create_post_tax_query($args, $search_param, $tax_name, $tax_id); - return array( - 'meta_key' => $meta_key, - 'data' => get_posts( $args ) - ); - } + return array( + 'meta_key' => $meta_key, + 'data' => get_posts($args) + ); + } - private static function create_sort_post_list_meta_query( &$args, $meta_key ) { + private static function create_sort_post_list_meta_query(&$args, $meta_key) { - $args['meta_query'] = array( - 'relation' => 'OR', - array( - 'key' => $meta_key, - 'compare' => 'EXISTS', - ), - array( - 'key' => $meta_key, - 'compare' => 'NOT EXISTS', - ), - ); - } + $args['meta_query'] = array( + 'relation' => 'OR', + array( + 'key' => $meta_key, + 'compare' => 'EXISTS', + ), + array( + 'key' => $meta_key, + 'compare' => 'NOT EXISTS', + ), + ); + } - public static function create_post_sort_key( $tax_name, $tax_key ) { - if ( $tax_key == 'taxonomy' ) { - return 'tax'; - } + public static function create_post_sort_key($tax_name, $tax_key) { + if ($tax_key == 'taxonomy') { + return 'tax'; + } - return $tax_name; - } + return $tax_name; + } - private static function create_post_tax_query( &$args, $key, $tax_name, $tax_id ) { - if ( $key == 'taxonomy' ) { - $args['tax_query'] = array( - array( - 'taxonomy' => $tax_name, - 'field' => 'term_id', - 'terms' => $tax_id, - 'include_children' => false - ) - ); - } else { - $args[ $key ] = $tax_id; - } - } + private static function create_post_tax_query(&$args, $key, $tax_name, $tax_id) { + if ($key == 'taxonomy') { + $args['tax_query'] = array( + array( + 'taxonomy' => $tax_name, + 'field' => 'term_id', + 'terms' => $tax_id, + 'include_children' => false + ) + ); + } else { + $args[$key] = $tax_id; + } + } - public static function create_cat_per_page( $opt_per_page, $type ): array { - $cat_per_page = $opt_per_page[ $type ] ?? 'default'; - $checked = ''; - $cat_per_page_num = ''; - if ( isset( $opt_per_page[ $type ] ) ) { - if ( $opt_per_page[ $type ] != 'default' - && $opt_per_page[ $type ] != '-1' - && $opt_per_page[ $type ] != 'all' ) { - $checked = ' checked="checked"'; - $cat_per_page_num = $cat_per_page; - } - } + public static function create_cat_per_page($opt_per_page, $type): array { + $cat_per_page = $opt_per_page[$type] ?? 'default'; + $checked = ''; + $cat_per_page_num = ''; + if (isset($opt_per_page[$type])) { + if ($opt_per_page[$type] != 'default' + && $opt_per_page[$type] != '-1' + && $opt_per_page[$type] != 'all') { + $checked = ' checked="checked"'; + $cat_per_page_num = $cat_per_page; + } + } - return array( - '_per_page' => $cat_per_page, - '_checked' => $checked, - '_per_page_num' => $cat_per_page_num, - ); - } + return array( + '_per_page' => $cat_per_page, + '_checked' => $checked, + '_per_page_num' => $cat_per_page_num, + ); + } - public static function disp_tax_setting( $key, $title, $order_name ) { - $tax_data = APOP_UI::get_all_taxonomies( $key ); - if ( count( $tax_data ) > 0 ) { - $order_name = $order_name; - $order_tax = $key == 'post_tag' ? 'tag' : $key; - echo '' . esc_html( $title ) . ''; - include APOP_PLUGIN_PATH . 'template/setting_parts_taxonomy.php'; - echo ''; - } - } + public static function disp_tax_setting($key, $title, $order_name) { + $tax_data = APOP_UI::get_all_taxonomies($key); + if (count($tax_data) > 0) { + $order_tax = $key == 'post_tag' ? 'tag' : $key; + echo '' . esc_html($title) . ''; + if (isset($tax_data, $order_name, $order_tax)) { + include APOP_PLUGIN_PATH . 'template/setting_parts_taxonomy.php'; + } + echo ''; + } + } - public static function disp_customposts_setting( $key, $title, $order_name ) { - $custom_post_data = APOP_UI::get_all_custom_posts(); - if ( count( $custom_post_data ) > 0 ) { - $order_name = $order_name; - $order = $key; - echo '' . esc_html( $title ) . ''; - include APOP_PLUGIN_PATH . 'template/setting_parts_customposts.php'; - echo ''; - } - } + public static function disp_customposts_setting($key, $title, $order_name) { + $custom_post_data = APOP_UI::get_all_custom_posts(); + if (count($custom_post_data) > 0) { + echo '' . esc_html($title) . ''; + if (isset($custom_post_data, $order_name, $key)) { + include APOP_PLUGIN_PATH . 'template/setting_parts_customposts.php'; + } + echo ''; + } + } - public static function create_custom_posts_per_page( $opt_per_page, $type, $slug ): array { - $cat_per_page = $opt_per_page[ $type ][ $slug ] ?? 'default'; - $checked = ''; - $cat_per_page_num = ''; - if ( isset( $opt_per_page[ $type ][ $slug ] ) ) { - if ( $opt_per_page[ $type ][ $slug ] != 'default' - && $opt_per_page[ $type ][ $slug ] != '-1' - && $opt_per_page[ $type ][ $slug ] != 'all' ) { - $checked = ' checked="checked"'; - $cat_per_page_num = $cat_per_page; - } - } + public static function create_custom_posts_per_page($opt_per_page, $type, $slug): array { + $cat_per_page = $opt_per_page[$type][$slug] ?? 'default'; + $checked = ''; + $cat_per_page_num = ''; + if (isset($opt_per_page[$type][$slug])) { + if ($opt_per_page[$type][$slug] != 'default' + && $opt_per_page[$type][$slug] != '-1' + && $opt_per_page[$type][$slug] != 'all') { + $checked = ' checked="checked"'; + $cat_per_page_num = $cat_per_page; + } + } - return array( - '_per_page' => $cat_per_page, - '_checked' => $checked, - '_per_page_num' => $cat_per_page_num, - ); - } + return array( + '_per_page' => $cat_per_page, + '_checked' => $checked, + '_per_page_num' => $cat_per_page_num, + ); + } - public static function create_tax_per_page( $opt_per_page, $type, $id ): array { - $cat_per_page = $opt_per_page[ $type ][ $id ] ?? 'default'; - $checked = ''; - $cat_per_page_num = ''; - if ( isset( $opt_per_page[ $type ][ $id ] ) ) { - if ( $opt_per_page[ $type ][ $id ] != 'default' - && $opt_per_page[ $type ][ $id ] != '-1' - && $opt_per_page[ $type ][ $id ] != 'all' ) { - $checked = ' checked="checked"'; - $cat_per_page_num = $cat_per_page; - } - } + public static function create_tax_per_page($opt_per_page, $type, $id): array { + $cat_per_page = $opt_per_page[$type][$id] ?? 'default'; + $checked = ''; + $cat_per_page_num = ''; + if (isset($opt_per_page[$type][$id])) { + if ($opt_per_page[$type][$id] != 'default' + && $opt_per_page[$type][$id] != '-1' + && $opt_per_page[$type][$id] != 'all') { + $checked = ' checked="checked"'; + $cat_per_page_num = $cat_per_page; + } + } - return array( - '_per_page' => $cat_per_page, - '_checked' => $checked, - '_per_page_num' => $cat_per_page_num, - ); - } + return array( + '_per_page' => $cat_per_page, + '_checked' => $checked, + '_per_page_num' => $cat_per_page_num, + ); + } - public static function create_search_normal_list( $type, $id = null ) { - $name_keys = self::create_name_keys( $id, $type ); - $name_key = $name_keys['name_key']; - $get_option_key = $name_keys['get_option_key']; - $order_param_base = get_option( $get_option_key ); - $order_param = ''; - if ( is_null( $id ) ) { - $order_param = $order_param_base; - } - if ( isset( $order_param_base[ $id ] ) ) { - $order_param = $order_param_base[ $id ]; - } - self::create_normal_sort_list( $name_key, $order_param ); - } + public static function create_search_normal_list($type, $id = null) { + $name_keys = self::create_name_keys($id, $type); + $name_key = $name_keys['name_key']; + $get_option_key = $name_keys['get_option_key']; + $order_param_base = get_option($get_option_key); + $order_param = ''; + if (is_null($id)) { + $order_param = $order_param_base; + } + if (isset($order_param_base[$id])) { + $order_param = $order_param_base[$id]; + } + self::create_normal_sort_list($name_key, $order_param); + } - private static function create_custom_field_sort_type( $name_key, $target_key, $cnv_order_params ) { - $meta_key = $cnv_order_params[ $target_key ]['meta_key']; - $value_type = $cnv_order_params[ $target_key ]['value_type']; - $custom_field_type = $cnv_order_params[ $target_key ]['custom_field_type']; - $name_meta_key = '_' . $name_key . '[' . $target_key . '][field][meta_key]'; - $name_value_type = '_' . $name_key . '[' . $target_key . '][field][value_type]'; - $name_custom_field_type = '_' . $name_key . '[' . $target_key . '][field][custom_field_type]'; - $custom_field_val_1 = $custom_field_type == '1' ? $meta_key : ''; - $custom_field_val_2 = $custom_field_type == '2' ? $meta_key : '';; - echo '
    + private static function create_custom_field_sort_type($name_key, $target_key, $cnv_order_params) { + $meta_key = $cnv_order_params[$target_key]['meta_key']; + $value_type = $cnv_order_params[$target_key]['value_type']; + $custom_field_type = $cnv_order_params[$target_key]['custom_field_type']; + $name_meta_key = '_' . $name_key . '[' . $target_key . '][field][meta_key]'; + $name_value_type = '_' . $name_key . '[' . $target_key . '][field][value_type]'; + $name_custom_field_type = '_' . $name_key . '[' . $target_key . '][field][custom_field_type]'; + $custom_field_val_1 = $custom_field_type == '1' ? $meta_key : ''; + $custom_field_val_2 = $custom_field_type == '2' ? $meta_key : ''; + echo '
    + name="' . esc_attr($name_custom_field_type) . '" + value="1"' . esc_attr(self::set_search_normal_checked($custom_field_type, '1')) . '>' . __('Select', APOP_DOMAIN) . ' + name="' . esc_attr($name_custom_field_type) . '" + value="2"' . esc_attr(self::set_search_normal_checked($custom_field_type, '2')) . '>' . __('Add', APOP_DOMAIN) . '
    '; - echo ' - + echo ' +
    -
    ' . __( 'Type', APOP_DOMAIN ) . ':
    +
    ' . __('Type', APOP_DOMAIN) . ':
    + name="' . esc_attr($name_value_type) . '" + value="meta_value"' . esc_attr(self::set_search_normal_checked($value_type, 'meta_value')) . '>' . __('Text', APOP_DOMAIN) . ' + name="' . esc_attr($name_value_type) . '" + value="meta_value_num"' . esc_attr(self::set_search_normal_checked($value_type, 'meta_value_num')) . '>' . __('Number', APOP_DOMAIN) . '
    '; - } + } - private static function set_order_list_param( $order_param, $target_key ): array { + private static function set_order_list_param($order_param, $target_key): array { - $param = array( - 'use' => 0, - 'sort' => 2, - 'no_order_class' => ' no-order', - ); + $param = array( + 'use' => 0, + 'sort' => 2, + 'no_order_class' => ' no-order', + ); - if ( strpos( $target_key, 'custom_field' ) !== false ) { - $param[ $target_key ] = array( - 'meta_key' => '', - 'value_type' => 'meta_value', - 'custom_field_type' => '1', - ); - } + if (strpos($target_key, 'custom_field') !== false) { + $param[$target_key] = array( + 'meta_key' => '', + 'value_type' => 'meta_value', + 'custom_field_type' => '1', + ); + } - if ( isset( $order_param[ $target_key ] ) ) { - $param = array( - 'use' => $order_param[ $target_key ]['use'] ?? 0, - 'sort' => $order_param[ $target_key ]['sort'] ?? 2, - 'no_order_class' => ! $order_param[ $target_key ]['use'] ? ' no-order' : '', - ); - if ( strpos( $target_key, 'custom_field' ) !== false ) { - $param[ $target_key ] = array( - 'meta_key' => $order_param[ $target_key ]['field']['meta_key'] ?? '', - 'value_type' => $order_param[ $target_key ]['field']['value_type'] ?? 'meta_value', - 'custom_field_type' => $order_param[ $target_key ]['field']['custom_field_type'] ?? '1', - ); - } - } + if (isset($order_param[$target_key])) { + $param = array( + 'use' => $order_param[$target_key]['use'] ?? 0, + 'sort' => $order_param[$target_key]['sort'] ?? 2, + 'no_order_class' => !$order_param[$target_key]['use'] ? ' no-order' : '', + ); + if (strpos($target_key, 'custom_field') !== false) { + $param[$target_key] = array( + 'meta_key' => $order_param[$target_key]['field']['meta_key'] ?? '', + 'value_type' => $order_param[$target_key]['field']['value_type'] ?? 'meta_value', + 'custom_field_type' => $order_param[$target_key]['field']['custom_field_type'] ?? '1', + ); + } + } - return $param; + return $param; - } + } - private static function create_name_keys( $id, $type ): array { - if ( is_null( $id ) ) { - return array( - 'name_key' => 'apop_' . $type . '_order_param', - 'get_option_key' => '_' . 'apop_' . $type . '_order_param', - ); - } else { - return array( - 'name_key' => 'apop_tax_order_param[' . $id . ']', - 'get_option_key' => '_apop_tax_order_param', - ); - } - } + private static function create_name_keys($id, $type): array { + if (is_null($id)) { + return array( + 'name_key' => 'apop_' . $type . '_order_param', + 'get_option_key' => '_' . 'apop_' . $type . '_order_param', + ); + } else { + return array( + 'name_key' => 'apop_tax_order_param[' . $id . ']', + 'get_option_key' => '_apop_tax_order_param', + ); + } + } - private static function set_search_normal_target_keys( $post_apop_search_order_param ) { + private static function set_search_normal_target_keys($post_apop_search_order_param): array { - $set_keys = array( - 'date', - 'title', - 'ID', - 'modified', - 'custom_field', - 'custom_field_2', - 'custom_field_3', - 'custom_field_4', - ); + $set_keys = array( + 'date', + 'title', + 'ID', + 'modified', + 'custom_field', + 'custom_field_2', + 'custom_field_3', + 'custom_field_4', + ); - if ( $post_apop_search_order_param ) { - $register_keys = array_keys( $post_apop_search_order_param ); + if ($post_apop_search_order_param) { + $register_keys = array_keys($post_apop_search_order_param); - return array_unique( array_merge( $register_keys, $set_keys ) ); - } + return array_unique(array_merge($register_keys, $set_keys)); + } - return $set_keys; - } + return $set_keys; + } - private static function set_search_normal_checked( $param, $default ): string { - if ( $param == $default ) { - return ' checked="checked"'; - } + private static function set_search_normal_checked($param, $default): string { + if ($param == $default) { + return ' checked="checked"'; + } + return ''; + } - return ''; - } + public static function input_post_filter($var_name, $type) { + if ($type == 'array') { + return filter_input(INPUT_POST, $var_name, FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY); + } + if ($type == 'str') { + return filter_input(INPUT_POST, $var_name, FILTER_SANITIZE_STRING); + } + return ''; + } - public static function input_post_filter( $var_name, $type ) { - if ( $type == 'array' ) { - return filter_input( INPUT_POST, $var_name, FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY ); - } - if ( $type == 'str' ) { - return filter_input( INPUT_POST, $var_name, FILTER_SANITIZE_STRING ); - } - } + public static function create_normal_sort_list($name_key, $order_param) { + $target_keys = self::set_search_normal_target_keys($order_param); + $target_values = array( + 'date' => __('Published', APOP_DOMAIN), + 'title' => __('Post Title', APOP_DOMAIN), + 'ID' => 'ID', + 'modified' => __('Modified', APOP_DOMAIN), + 'custom_field' => __('Custom filed 1', APOP_DOMAIN), + 'custom_field_2' => __('Custom filed 2', APOP_DOMAIN), + 'custom_field_3' => __('Custom filed 3', APOP_DOMAIN), + 'custom_field_4' => __('Custom filed 4', APOP_DOMAIN), + ); + foreach ($target_keys as $target_key) { + $cnv_order_params = self::set_order_list_param($order_param, $target_key); + $use = $cnv_order_params['use']; + $sort = $cnv_order_params['sort']; + $no_order_class = $cnv_order_params['no_order_class']; + $name_use_key = '_' . $name_key . '[' . $target_key . '][use]'; + $name_sort_key = '_' . $name_key . '[' . $target_key . '][sort]'; + if (strpos($target_key, 'custom_field') !== false) { + $target_key_check_class = 'custom_field_check'; + } else { + $target_key_check_class = 'sort_' . $target_key . '_check'; + } - public static function create_normal_sort_list( $name_key, $order_param ) { - $target_keys = self::set_search_normal_target_keys( $order_param ); - $target_values = array( - 'date' => __( 'Published', APOP_DOMAIN ), - 'title' => __( 'Post Title', APOP_DOMAIN ), - 'ID' => 'ID', - 'modified' => __( 'Modified', APOP_DOMAIN ), - 'custom_field' => __( 'Custom filed 1', APOP_DOMAIN ), - 'custom_field_2' => __( 'Custom filed 2', APOP_DOMAIN ), - 'custom_field_3' => __( 'Custom filed 3', APOP_DOMAIN ), - 'custom_field_4' => __( 'Custom filed 4', APOP_DOMAIN ), - ); - foreach ( $target_keys as $target_key ) { - $cnv_order_params = self::set_order_list_param( $order_param, $target_key ); - $use = $cnv_order_params['use']; - $sort = $cnv_order_params['sort']; - $no_order_class = $cnv_order_params['no_order_class']; - $name_use_key = '_' . $name_key . '[' . $target_key . '][use]'; - $name_sort_key = '_' . $name_key . '[' . $target_key . '][sort]'; - if ( strpos( $target_key, 'custom_field' ) !== false ) { - $target_key_check_class = 'custom_field_check'; - } else { - $target_key_check_class = 'sort_' . $target_key . '_check'; - } - - echo '
  • -
    ' . esc_attr( $target_values[ $target_key ] ) . '
    + echo '
  • +
    ' . esc_attr($target_values[$target_key]) . '
    + name="' . esc_attr($name_sort_key) . '" + value="1"' . esc_attr(self::set_search_normal_checked($sort, 1)) . '>' . __('Asc', APOP_DOMAIN) . ' '; + name="' . esc_attr($name_sort_key) . '" + value="2"' . esc_attr(self::set_search_normal_checked($sort, 2)) . '>' . __('Desc', APOP_DOMAIN) . ''; - if ( strpos( $target_key, 'custom_field' ) !== false ) { - self::create_custom_field_sort_type( $name_key, $target_key, $cnv_order_params ); - } + if (strpos($target_key, 'custom_field') !== false) { + self::create_custom_field_sort_type($name_key, $target_key, $cnv_order_params); + } - echo '
    + echo '
  • '; - } - } + } + } - } + } } \ No newline at end of file diff --git a/readme.txt b/readme.txt index 5580803..819db80 100644 --- a/readme.txt +++ b/readme.txt @@ -2,9 +2,9 @@ Contributors: nbk45 Tags: latest posts order,categories post order,tags post order,custom taxonomy post order Requires at least: 4.9 -Tested up to: 5.9 -Requires PHP: 7.0 -Stable tag: 1.2.0 +Tested up to: 6.0 +Requires PHP: 7.4 +Stable tag: 1.2.1 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -82,6 +82,19 @@ screenshot-7.png screenshot-8.png == Changelog == += 1.2.1 = +confirm WordPress6.0 +Fix template typos. +Add method return type specification. +Delete unnecessary variable assignments. +Add condition to file include. + +WordPress6.0動作確認 +テンプレートのミスタイプの修正 +メソッドの戻り型指定の追加 +不要な変数代入の削除 +ファイルインクルードの条件追加 + = 1.2.0 = confirm WordPress5.9 Fixed Notice error in custom post archive.