diff --git a/archive-post-order-plus.php b/archive-post-order-plus.php
index 6f2d85e..41619d0 100644
--- a/archive-post-order-plus.php
+++ b/archive-post-order-plus.php
@@ -5,7 +5,7 @@ Plugin URI: https://www.n-k-y.net/wp_plugin_apop/
Author: Nobuhiro Kimura
Author URI: https://www.n-k-y.net
Description: 通常表示、検索表示、タクソノミー毎に投稿の表示順を設定するプラグイン
-Version: 1.0.0
+Version: 1.0.1
License: GPLv2
*/
diff --git a/class/class.apop.apop_ui.php b/class/class.apop.apop_ui.php
deleted file mode 100644
index 99e910c..0000000
--- a/class/class.apop.apop_ui.php
+++ /dev/null
@@ -1,449 +0,0 @@
- $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 );
- }
-
- 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_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;
- }
-
- public static function get_cat_tag_list( $target, $key ): array {
- $opt = get_option( '_apop_' . $target . '_order' );
-
- 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 );
- }
- }
-
- 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;
- }
-
- 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,
- );
-
- return get_terms( $args );
- }
-
- 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 ) . '
-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 );
- }
-
- private static function is_sort_post_registered( $id, $key ): bool {
- if ( get_post_meta( $id, $key, true ) ) {
- return true;
- }
-
- 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 );
-
- return array(
- 'meta_key' => $meta_key,
- 'data' => get_posts( $args )
- );
- }
-
- 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',
- ),
- );
- }
-
- public static function create_post_sort_key( $tax_name, $tax_key ) {
- if ( $tax_key == 'taxonomy' ) {
- return 'tax';
- }
-
- 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;
- }
- }
-
- 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,
- );
- }
-
- 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 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,
- );
- }
-
- 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 ];
- }
- $target_keys = self::set_search_normal_target_keys( $order_param );
- $target_values = array(
- 'date' => '登録日',
- 'title' => 'タイトル',
- 'ID' => 'ID',
- 'modified' => '更新日',
- 'custom_field' => 'カスタムフィールド1',
- 'custom_field_2' => 'カスタムフィールド2',
- 'custom_field_3' => 'カスタムフィールド3',
- 'custom_field_4' => 'カスタムフィールド4',
- );
- $list = array();
- 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'];
- $field_metakey_input = '';
- $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 ] ) . '
-
-
-
- ';
-
- if ( strpos( $target_key, 'custom_field' ) !== false ) {
- self::create_custom_field_sort_type( $name_key, $target_key, $cnv_order_params );
- }
-
- 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'];
- $name_meta_key = '_' . $name_key . '[' . $target_key . '][field][meta_key]';
- $name_value_type = '_' . $name_key . '[' . $target_key . '][field][value_type]';
- echo '';
- }
-
- private static function set_order_list_param( $order_param, $target_key ): array {
-
- $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',
- );
- }
-
- 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',
- );
- }
- }
-
- 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 set_search_normal_target_keys( $post_apop_search_order_param ) {
-
- $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 );
-
- return array_unique( array_merge( $register_keys, $set_keys ) );
- }
-
- return $set_keys;
- }
-
- private static function set_search_normal_checked( $param, $default ): string {
- if ( $param == $default ) {
- return ' checked="checked"';
- }
-
- 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 );
- }
- }
-
- }
-}
\ No newline at end of file