Merge pull request 'ARCHIVE POST ORDER PLUS:カスタム投稿アーカイブの追加' (#12) from カスタム投稿対応 into master
Reviewed-on: https://develop.n-k-y.net/repo/WP_PLUGIN/POST_ORDER_BY_ARCHIVE/pulls/12
This commit was merged in pull request #12.
This commit is contained in:
@@ -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.1.7
|
||||
Version: 1.1.8
|
||||
License: GPLv2
|
||||
Text Domain: ArchivePostOrderPlus
|
||||
Domain Path: /languages
|
||||
|
||||
@@ -47,13 +47,17 @@ if ( ! class_exists( 'APOP_POST' ) ) {
|
||||
$this->create_order_field_data( get_option( '_apop_search_order_param' ), 'search' );
|
||||
}
|
||||
|
||||
//カスタム投稿アーカイブソート
|
||||
$this->create_order_custompost_data( get_option( '_apop_custompost_archive_order_param' ) );
|
||||
|
||||
//カテゴリー、タグ、カスタム分類
|
||||
$this->create_order_tax_field_data( get_option( '_apop_tax_order_param' ) );
|
||||
|
||||
$this->labels = array(
|
||||
'normal' => __('Your latest posts', APOP_DOMAIN),
|
||||
'search' => __('Search', APOP_DOMAIN),
|
||||
'tax' => __('Category, Tag, Custom Taxonomy', APOP_DOMAIN),
|
||||
'normal' => __( 'Your latest posts', APOP_DOMAIN ),
|
||||
'search' => __( 'Search', APOP_DOMAIN ),
|
||||
'tax' => __( 'Category, Tag, Custom Taxonomy', APOP_DOMAIN ),
|
||||
'custompost' => __( 'Custom posts archive', APOP_DOMAIN ),
|
||||
);
|
||||
|
||||
require_once self::TEMPLATE_DIR . 'setting_post_custom_field.php';
|
||||
@@ -80,6 +84,29 @@ if ( ! class_exists( 'APOP_POST' ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
private function create_order_custompost_data( $param, $update = false ) {
|
||||
global $post_type;
|
||||
//カスタム投稿タイプでないときは処理を抜ける
|
||||
if ( $post_type == 'page' || $post_type == 'post' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$archive_settings = get_option( '_apop_custompost_archive_sort_type' );
|
||||
if ( array_key_exists( $post_type, $archive_settings ) && $archive_settings[ $post_type ] == 2 ) {
|
||||
foreach ( $this->order_param_keys as $order_param_key ) {
|
||||
if ( isset( $param[ $post_type ][ $order_param_key ]['field']['meta_key'] ) &&
|
||||
! empty( $param[ $post_type ][ $order_param_key ]['field']['meta_key'] ) ) {
|
||||
if ( $update ) {
|
||||
$this->name_keys[] = $param[ $post_type ][ $order_param_key ]['field']['meta_key'];
|
||||
} else {
|
||||
$this->custom_field_type['custompost'][] = $param[ $post_type ][ $order_param_key ]['field']['custom_field_type'];
|
||||
$this->order_field['custompost'][] = $param[ $post_type ][ $order_param_key ]['field']['meta_key'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function create_order_tax_field_data( $param, $update = false ) {
|
||||
$term_ids = $this->create_post_term_ids();
|
||||
$sort_types = get_option( '_apop_tax_sort_type' );
|
||||
@@ -144,6 +171,8 @@ if ( ! class_exists( 'APOP_POST' ) ) {
|
||||
$this->create_order_field_data( get_option( '_apop_normal_order_param' ), 'normal', true );
|
||||
//検索ソート
|
||||
$this->create_order_field_data( get_option( '_apop_search_order_param' ), 'search', true );
|
||||
//カスタム投稿アーカイブ
|
||||
$this->create_order_custompost_data( get_option( '_apop_custompost_archive_order_param' ), true );
|
||||
//カテゴリー、タグ、カスタム分類
|
||||
$this->create_order_tax_field_data( get_option( '_apop_tax_order_param' ), true );
|
||||
}
|
||||
|
||||
@@ -6,10 +6,11 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
if ( ! class_exists( 'APOP_UI' ) ) {
|
||||
|
||||
require_once __DIR__ . '/../util/apop-customfield-select.php';
|
||||
require_once __DIR__ . '/../util/apop-customposts.php';
|
||||
|
||||
class APOP_UI {
|
||||
|
||||
use CUSTOMFIELD_SELECT;
|
||||
use CUSTOMFIELD_SELECT, CUSTOMPOSTS;
|
||||
|
||||
public static function get_order_type( $type ) {
|
||||
$type_data = get_option( $type );
|
||||
@@ -68,6 +69,17 @@ if ( ! class_exists( 'APOP_UI' ) ) {
|
||||
);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
return $custom_post_data;
|
||||
}
|
||||
|
||||
private static function get_all_taxonomies( $key ) {
|
||||
if ( $key !== 'taxonomy' ) {
|
||||
return get_terms( array( 'taxonomy' => $key, 'get' => 'all' ) );
|
||||
@@ -255,6 +267,37 @@ value="' . esc_html( $sort_num ) . '">
|
||||
}
|
||||
}
|
||||
|
||||
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 '<tr><th scope="row">' . esc_html( $title ) . '</th><td>';
|
||||
include APOP_PLUGIN_PATH . 'template/setting_parts_customposts.php';
|
||||
echo '</td></tr>';
|
||||
}
|
||||
}
|
||||
|
||||
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,
|
||||
);
|
||||
}
|
||||
|
||||
public static function create_tax_per_page( $opt_per_page, $type, $id ): array {
|
||||
$cat_per_page = $opt_per_page[ $type ][ $id ] ?? 'default';
|
||||
$checked = '';
|
||||
@@ -287,56 +330,7 @@ value="' . esc_html( $sort_num ) . '">
|
||||
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' => __( '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 ),
|
||||
);
|
||||
$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'];
|
||||
$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 '<li class="product-list' . esc_attr( $no_order_class ) . '">
|
||||
<div class="product-list-type-label"><b>' . esc_attr( $target_values[ $target_key ] ) . '</b></div>
|
||||
<div class="product-list-sort-type">
|
||||
<label>
|
||||
<input type="hidden" name="' . esc_attr( $name_use_key ) . '"
|
||||
value="0"' . esc_attr( self::set_search_normal_checked( $use, 0 ) ) . '>
|
||||
<span class="en_dis_label">' . __( 'Enabled', APOP_DOMAIN ) . '</span>:<input class="' . esc_html( $target_key_check_class ) . '"
|
||||
type="checkbox" name="' . esc_attr( $name_use_key ) . '" value="1"' . esc_attr( self::set_search_normal_checked( $use, 1 ) ) . '>
|
||||
</label>
|
||||
<label>
|
||||
<input class="order_param" type="radio"
|
||||
name="' . esc_attr( $name_sort_key ) . '"
|
||||
value="1"' . esc_attr( self::set_search_normal_checked( $sort, 1 ) ) . '>' . __( 'Asc', APOP_DOMAIN ) . '</label>
|
||||
<label>
|
||||
<input class="order_param" type="radio"
|
||||
name="' . esc_attr( $name_sort_key ) . '"
|
||||
value="2"' . esc_attr( self::set_search_normal_checked( $sort, 2 ) ) . '>' . __( 'Desc', APOP_DOMAIN ) . '</label>';
|
||||
|
||||
if ( strpos( $target_key, 'custom_field' ) !== false ) {
|
||||
self::create_custom_field_sort_type( $name_key, $target_key, $cnv_order_params );
|
||||
}
|
||||
|
||||
echo '</div>
|
||||
</li>';
|
||||
}
|
||||
self::create_normal_sort_list( $name_key, $order_param );
|
||||
}
|
||||
|
||||
private static function create_custom_field_sort_type( $name_key, $target_key, $cnv_order_params ) {
|
||||
@@ -469,5 +463,57 @@ value="' . esc_html( $sort_num ) . '">
|
||||
}
|
||||
}
|
||||
|
||||
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 '<li class="product-list' . esc_attr( $no_order_class ) . '">
|
||||
<div class="product-list-type-label"><b>' . esc_attr( $target_values[ $target_key ] ) . '</b></div>
|
||||
<div class="product-list-sort-type">
|
||||
<label>
|
||||
<input type="hidden" name="' . esc_attr( $name_use_key ) . '"
|
||||
value="0"' . esc_attr( self::set_search_normal_checked( $use, 0 ) ) . '>
|
||||
<span class="en_dis_label">' . __( 'Enabled', APOP_DOMAIN ) . '</span>:<input class="' . esc_html( $target_key_check_class ) . '"
|
||||
type="checkbox" name="' . esc_attr( $name_use_key ) . '" value="1"' . esc_attr( self::set_search_normal_checked( $use, 1 ) ) . '>
|
||||
</label>
|
||||
<label>
|
||||
<input class="order_param" type="radio"
|
||||
name="' . esc_attr( $name_sort_key ) . '"
|
||||
value="1"' . esc_attr( self::set_search_normal_checked( $sort, 1 ) ) . '>' . __( 'Asc', APOP_DOMAIN ) . '</label>
|
||||
<label>
|
||||
<input class="order_param" type="radio"
|
||||
name="' . esc_attr( $name_sort_key ) . '"
|
||||
value="2"' . esc_attr( self::set_search_normal_checked( $sort, 2 ) ) . '>' . __( 'Desc', APOP_DOMAIN ) . '</label>';
|
||||
|
||||
if ( strpos( $target_key, 'custom_field' ) !== false ) {
|
||||
self::create_custom_field_sort_type( $name_key, $target_key, $cnv_order_params );
|
||||
}
|
||||
|
||||
echo '</div>
|
||||
</li>';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+84
-20
@@ -7,10 +7,13 @@ if ( ! class_exists( 'APOP' ) ) {
|
||||
|
||||
require_once __DIR__ . '/../util/apop-order-setting.php';
|
||||
require_once __DIR__ . '/../util/apop-customfield-select.php';
|
||||
require_once __DIR__ . '/../util/apop-customposts.php';
|
||||
require_once __DIR__ . '/../util/apop-tax.php';
|
||||
require_once __DIR__ . '/../util/apop-output.php';
|
||||
|
||||
class APOP {
|
||||
|
||||
use APOP_ORDER_SETTING, CUSTOMFIELD_SELECT;
|
||||
use APOP_ORDER_SETTING, CUSTOMFIELD_SELECT, CUSTOMPOSTS, TAX, APOP_OUTPUT;
|
||||
|
||||
const TEMPLATE_DIR = __DIR__ . '/../template/';
|
||||
|
||||
@@ -55,6 +58,7 @@ if ( ! class_exists( 'APOP' ) ) {
|
||||
'_apop_per_page', //1ページ表示件数
|
||||
'_apop_tag_order', //タグ設定
|
||||
'_apop_tax_order', //カスタムタクソノミー設定
|
||||
'_apop_custompost_archive_order', //カスタム投稿設定
|
||||
);
|
||||
|
||||
foreach ( $settings as $setting ) {
|
||||
@@ -72,9 +76,26 @@ if ( ! class_exists( 'APOP' ) ) {
|
||||
|
||||
|
||||
public function show_option_page() {
|
||||
//-------------------------------------
|
||||
// 最新の投稿表示
|
||||
// ------------------------------------
|
||||
|
||||
//最新の投稿表示
|
||||
$this->set_new_lists();
|
||||
|
||||
// 検索表示
|
||||
$this->set_search_lists();
|
||||
|
||||
// カスタム投稿アーカイブ
|
||||
$this->set_custompost_archive_list();
|
||||
|
||||
// タクソノミー
|
||||
$this->set_tax_list();
|
||||
|
||||
require_once self::TEMPLATE_DIR . 'order.php';
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// 最新の投稿表示
|
||||
//---------------------------------------------------------------------------------
|
||||
private function set_new_lists() {
|
||||
$apop_normal_order = APOP_UI::input_post_filter( '_apop_normal_order', 'str' );
|
||||
$apop_normal_order_param = APOP_UI::input_post_filter( '_apop_normal_order_param', 'array' );
|
||||
$apop_post_normal = APOP_UI::input_post_filter( '_apop_post_normal', 'array' );
|
||||
@@ -98,10 +119,12 @@ if ( ! class_exists( 'APOP' ) ) {
|
||||
$this->update_search_normal_sort( $apop_post_normal, 'normal' );
|
||||
require_once self::TEMPLATE_DIR . 'success.php';
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
// 検索表示
|
||||
// ------------------------------------
|
||||
//---------------------------------------------------------------------------------
|
||||
// 検索結果
|
||||
//---------------------------------------------------------------------------------
|
||||
private function set_search_lists() {
|
||||
$apop_search_order = APOP_UI::input_post_filter( '_apop_search_order', 'str' );
|
||||
$apop_search_order_param = APOP_UI::input_post_filter( '_apop_search_order_param', 'array' );
|
||||
$apop_post_search = APOP_UI::input_post_filter( '_apop_post_search', 'array' );
|
||||
@@ -125,10 +148,60 @@ if ( ! class_exists( 'APOP' ) ) {
|
||||
$this->update_search_normal_sort( $apop_post_search, 'search' );
|
||||
require_once self::TEMPLATE_DIR . 'success.php';
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------
|
||||
// タクソノミー
|
||||
// ------------------------------------
|
||||
//検索結果と最近の投稿の表示順の保存
|
||||
private function update_search_normal_sort( $apop_post_search_normal, $key ) {
|
||||
$posts_sort = $apop_post_search_normal['post_sort'];
|
||||
foreach ( $posts_sort as $post_id => $sort ) {
|
||||
update_post_meta( $post_id, '_apop_post_' . $key, $sort );
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// カスタム投稿アーカイブ
|
||||
//---------------------------------------------------------------------------------
|
||||
private function set_custompost_archive_list() {
|
||||
$custompost_archive_sort_type = APOP_UI::input_post_filter( '_apop_custompost_archive_sort_type', 'array' );
|
||||
$apop_custompost_archive_order_param = APOP_UI::input_post_filter( '_apop_custompost_archive_order_param', 'array' );
|
||||
$apop_custompost_archive = APOP_UI::input_post_filter( '_apop_customposts', 'array' );
|
||||
|
||||
//カスタム投稿アーカイブのソートタイプ設定
|
||||
if ( $custompost_archive_sort_type ) {
|
||||
check_admin_referer( 'sh_options' );
|
||||
update_option( '_apop_custompost_archive_sort_type', $custompost_archive_sort_type );
|
||||
require_once self::TEMPLATE_DIR . 'success.php';
|
||||
}
|
||||
|
||||
//カスタム投稿アーカイブの標準ソートパラメータ
|
||||
if ( $apop_custompost_archive_order_param ) {
|
||||
check_admin_referer( 'sh_options' );
|
||||
update_option( '_apop_custompost_archive_order_param', $apop_custompost_archive_order_param );
|
||||
require_once self::TEMPLATE_DIR . 'success.php';
|
||||
}
|
||||
|
||||
//カスタム投稿アーカイブの投稿表示順設定
|
||||
if ( $apop_custompost_archive ) {
|
||||
check_admin_referer( 'sh_options' );
|
||||
$this->update_custom_post_sort( $apop_custompost_archive );
|
||||
require_once self::TEMPLATE_DIR . 'success.php';
|
||||
}
|
||||
}
|
||||
|
||||
//カスタム投稿アーカイブ表示順の保存
|
||||
private function update_custom_post_sort( $post_value ) {
|
||||
foreach ( $post_value as $custom_post_type => $posts ) {
|
||||
foreach ( $posts as $post_id => $sort ) {
|
||||
$sort_key = '_apop_customposts_' . $custom_post_type;
|
||||
update_post_meta( $post_id, $sort_key, $sort );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------------
|
||||
// タクソノミー
|
||||
//---------------------------------------------------------------------------------
|
||||
private function set_tax_list() {
|
||||
$tax_sort_type = APOP_UI::input_post_filter( '_apop_tax_sort_type', 'array' );
|
||||
$apop_tax_order_param = APOP_UI::input_post_filter( '_apop_tax_order_param', 'array' );
|
||||
$apop_post_category = APOP_UI::input_post_filter( '_apop_post_category', 'array' );
|
||||
@@ -169,11 +242,9 @@ if ( ! class_exists( 'APOP' ) ) {
|
||||
$this->update_post_sort( 'tax', $apop_post_tax );
|
||||
require_once self::TEMPLATE_DIR . 'success.php';
|
||||
}
|
||||
|
||||
require_once self::TEMPLATE_DIR . 'order.php';
|
||||
}
|
||||
|
||||
//投稿表示順の設定
|
||||
//タクソノミーの表示順の保存
|
||||
private function update_post_sort( $target, $post_value ) {
|
||||
$posts_sort = $post_value['post_sort'];
|
||||
foreach ( $posts_sort as $cat_id => $posts ) {
|
||||
@@ -184,13 +255,6 @@ if ( ! class_exists( 'APOP' ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
private function update_search_normal_sort( $apop_post_search_normal, $key ) {
|
||||
$posts_sort = $apop_post_search_normal['post_sort'];
|
||||
foreach ( $posts_sort as $post_id => $sort ) {
|
||||
update_post_meta( $post_id, '_apop_post_' . $key, $sort );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -5,7 +5,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Archive Post Order Plus\n"
|
||||
"Report-Msgid-Bugs-To: Translator Name <translations@example.com>\n"
|
||||
"POT-Creation-Date: 2021-07-11 17:11+0900\n"
|
||||
"POT-Creation-Date: 2021-07-23 16:59+0900\n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: NBK45 <nbk.develop@gmail.com>\n"
|
||||
"Language-Team: NBK45 <nbk.develop@gmail.com>\n"
|
||||
@@ -27,84 +27,89 @@ msgstr ""
|
||||
msgid "APO + custom field settings"
|
||||
msgstr "APO+カスタムフィールド"
|
||||
|
||||
#: class/class.apop.apop_post.php:54 template/order.php:8
|
||||
#: class/class.apop.apop_post.php:57 template/order.php:8
|
||||
msgid "Your latest posts"
|
||||
msgstr "最新の投稿"
|
||||
|
||||
#: class/class.apop.apop_post.php:55 template/order.php:9 template/order.php:54
|
||||
#: class/class.apop.apop_post.php:58 template/order.php:9 template/order.php:55
|
||||
msgid "Search"
|
||||
msgstr "検索"
|
||||
|
||||
#: class/class.apop.apop_post.php:56
|
||||
#: class/class.apop.apop_post.php:59
|
||||
msgid "Category, Tag, Custom Taxonomy"
|
||||
msgstr "カテゴリー、タグ、カスタム分類"
|
||||
|
||||
#: class/class.apop.apop_ui.php:292
|
||||
#: class/class.apop.apop_post.php:60
|
||||
msgid "Custom posts archive"
|
||||
msgstr "カスタム投稿アーカイブ"
|
||||
|
||||
#: class/class.apop.apop_ui.php:352
|
||||
msgid "Select"
|
||||
msgstr "選択"
|
||||
|
||||
#: class/class.apop.apop_ui.php:357
|
||||
msgid "Add"
|
||||
msgstr "追加"
|
||||
|
||||
#: class/class.apop.apop_ui.php:364
|
||||
msgid "Type"
|
||||
msgstr "値タイプ"
|
||||
|
||||
#: class/class.apop.apop_ui.php:369
|
||||
msgid "Text"
|
||||
msgstr "テキスト"
|
||||
|
||||
#: class/class.apop.apop_ui.php:373
|
||||
msgid "Number"
|
||||
msgstr "数値"
|
||||
|
||||
#: class/class.apop.apop_ui.php:469
|
||||
msgid "Published"
|
||||
msgstr "投稿日"
|
||||
|
||||
#: class/class.apop.apop_ui.php:293
|
||||
#: class/class.apop.apop_ui.php:470
|
||||
msgid "Post Title"
|
||||
msgstr "タイトル"
|
||||
|
||||
#: class/class.apop.apop_ui.php:295
|
||||
#: class/class.apop.apop_ui.php:472
|
||||
msgid "Modified"
|
||||
msgstr "更新日"
|
||||
|
||||
#: class/class.apop.apop_ui.php:296
|
||||
#: class/class.apop.apop_ui.php:473
|
||||
msgid "Custom filed 1"
|
||||
msgstr "カスタムフィールド1"
|
||||
|
||||
#: class/class.apop.apop_ui.php:297
|
||||
#: class/class.apop.apop_ui.php:474
|
||||
msgid "Custom filed 2"
|
||||
msgstr "カスタムフィールド2"
|
||||
|
||||
#: class/class.apop.apop_ui.php:298
|
||||
#: class/class.apop.apop_ui.php:475
|
||||
msgid "Custom filed 3"
|
||||
msgstr "カスタムフィールド3"
|
||||
|
||||
#: class/class.apop.apop_ui.php:299
|
||||
#: class/class.apop.apop_ui.php:476
|
||||
msgid "Custom filed 4"
|
||||
msgstr "カスタムフィールド4"
|
||||
|
||||
#: class/class.apop.apop_ui.php:321 template/order.php:33 template/order.php:64
|
||||
#: class/class.apop.apop_ui.php:497 template/order.php:34 template/order.php:65
|
||||
#: template/order_parts_custom_posts.php:46
|
||||
#: template/order_parts_taxonomy.php:46
|
||||
msgid "Enabled"
|
||||
msgstr "有効"
|
||||
|
||||
#: class/class.apop.apop_ui.php:327
|
||||
#: class/class.apop.apop_ui.php:503
|
||||
msgid "Asc"
|
||||
msgstr "昇順"
|
||||
|
||||
#: class/class.apop.apop_ui.php:331
|
||||
#: class/class.apop.apop_ui.php:507
|
||||
msgid "Desc"
|
||||
msgstr "降順"
|
||||
|
||||
#: class/class.apop.apop_ui.php:358
|
||||
msgid "Select"
|
||||
msgstr "選択"
|
||||
|
||||
#: class/class.apop.apop_ui.php:363
|
||||
msgid "Add"
|
||||
msgstr "追加"
|
||||
|
||||
#: class/class.apop.apop_ui.php:370
|
||||
msgid "Type"
|
||||
msgstr "値タイプ"
|
||||
|
||||
#: class/class.apop.apop_ui.php:375
|
||||
msgid "Text"
|
||||
msgstr "テキスト"
|
||||
|
||||
#: class/class.apop.apop_ui.php:379
|
||||
msgid "Number"
|
||||
msgstr "数値"
|
||||
|
||||
#: class/class.apop.order.php:36
|
||||
#: class/class.apop.order.php:39
|
||||
msgid "Display number / target setting"
|
||||
msgstr "表示件数・対象設定"
|
||||
|
||||
#: class/class.apop.order.php:44 template/order.php:5
|
||||
#: class/class.apop.order.php:47 template/order.php:5
|
||||
msgid "Sorting"
|
||||
msgstr "並べ替え"
|
||||
|
||||
@@ -112,48 +117,59 @@ msgstr "並べ替え"
|
||||
msgid "apop-lang-en"
|
||||
msgstr "apop-lang-ja"
|
||||
|
||||
#: template/order.php:10 template/order.php:86
|
||||
#: template/order.php:10 template/order.php:87
|
||||
msgid "Category"
|
||||
msgstr "カテゴリー"
|
||||
|
||||
#: template/order.php:11 template/order.php:95
|
||||
#: template/order.php:11 template/order.php:96
|
||||
msgid "Tag"
|
||||
msgstr "タグ"
|
||||
|
||||
#: template/order.php:12 template/order.php:104
|
||||
#: template/order.php:12 template/order.php:105
|
||||
msgid "Custom taxonomy"
|
||||
msgstr "カスタム分類"
|
||||
|
||||
#: template/order.php:23
|
||||
#: template/order.php:13 template/order.php:113
|
||||
msgid "Custom posts"
|
||||
msgstr "カスタム投稿アーカイブ"
|
||||
|
||||
#: template/order.php:24
|
||||
msgid "Your latest posts / Settings - Reading Settings"
|
||||
msgstr "最新の投稿(設定-表示設定ーホームページの表示)"
|
||||
|
||||
#: template/order.php:30 template/order.php:61
|
||||
#: template/order.php:31 template/order.php:62
|
||||
#: template/order_parts_custom_posts.php:36
|
||||
#: template/order_parts_custom_posts.php:44
|
||||
#: template/order_parts_taxonomy.php:36 template/order_parts_taxonomy.php:44
|
||||
msgid "Click \"Save Changes\" to register the sort."
|
||||
msgstr "並べ替えを登録するには「変更を保存」をクリックしてください。"
|
||||
|
||||
#: template/order.php:39 template/order.php:70
|
||||
#: template/order.php:40 template/order.php:71
|
||||
#: template/order_parts_custom_posts.php:52
|
||||
#: template/order_parts_taxonomy.php:52
|
||||
msgid "Disabled"
|
||||
msgstr "無効"
|
||||
|
||||
#: template/order.php:110 template/setting.php:45
|
||||
#: template/order.php:120 template/setting.php:46
|
||||
msgid "Save changes"
|
||||
msgstr "変更を保存"
|
||||
|
||||
#: template/order_parts_menu.php:6 template/order_parts_taxonomy.php:22
|
||||
#: template/order_parts_custom_posts.php:22 template/order_parts_menu.php:6
|
||||
#: template/order_parts_taxonomy.php:22
|
||||
msgid "Standard + custom field sort"
|
||||
msgstr "標準+カスタムフィールドソート"
|
||||
|
||||
#: template/order_parts_menu.php:9 template/order_parts_taxonomy.php:29
|
||||
#: template/order_parts_custom_posts.php:29 template/order_parts_menu.php:9
|
||||
#: template/order_parts_taxonomy.php:29
|
||||
msgid "Drag sort"
|
||||
msgstr "ドラッグソート"
|
||||
|
||||
#: template/order_parts_custom_posts.php:60
|
||||
#: template/order_parts_taxonomy.php:59
|
||||
msgid "No"
|
||||
msgstr "並べ替えをカスタマイズする「"
|
||||
|
||||
#: template/order_parts_custom_posts.php:60
|
||||
#: template/order_parts_taxonomy.php:59
|
||||
msgid "has been selected."
|
||||
msgstr "」は選択されていません。"
|
||||
@@ -170,19 +186,23 @@ msgstr "全体設定"
|
||||
msgid "Displayed per page"
|
||||
msgstr "1ページ表示件数"
|
||||
|
||||
#: template/setting.php:16 template/setting_parts_taxonomy.php:31
|
||||
#: template/setting.php:16 template/setting_parts_customposts.php:31
|
||||
#: template/setting_parts_taxonomy.php:31
|
||||
msgid "Follow display settings"
|
||||
msgstr "表示設定に従う"
|
||||
|
||||
#: template/setting.php:18 template/setting_parts_taxonomy.php:32
|
||||
#: template/setting.php:18 template/setting_parts_customposts.php:33
|
||||
#: template/setting_parts_taxonomy.php:32
|
||||
msgid "Posts"
|
||||
msgstr "件"
|
||||
|
||||
#: template/setting.php:22 template/setting_parts_taxonomy.php:42
|
||||
#: template/setting.php:22 template/setting_parts_customposts.php:44
|
||||
#: template/setting_parts_taxonomy.php:42
|
||||
msgid "All posts"
|
||||
msgstr "全件"
|
||||
|
||||
#: template/setting.php:28 template/setting_parts_taxonomy.php:47
|
||||
#: template/setting.php:28 template/setting_parts_customposts.php:50
|
||||
#: template/setting_parts_taxonomy.php:47
|
||||
msgid "Set the number posts"
|
||||
msgstr "表示数設定"
|
||||
|
||||
@@ -198,10 +218,16 @@ msgstr "タグ設定"
|
||||
msgid "Custom Taxonomies setting"
|
||||
msgstr "カスタム分類設定"
|
||||
|
||||
#: template/setting.php:43
|
||||
msgid "Custom Posts Archive setting"
|
||||
msgstr "カスタム投稿アーカイブ設定"
|
||||
|
||||
#: template/setting_parts_customposts.php:3
|
||||
#: template/setting_parts_taxonomy.php:3
|
||||
msgid "Targets"
|
||||
msgstr "対象"
|
||||
|
||||
#: template/setting_parts_customposts.php:38
|
||||
#: template/setting_parts_taxonomy.php:37
|
||||
msgid "Follow global settings"
|
||||
msgstr "全体設定に従う"
|
||||
|
||||
@@ -69,7 +69,6 @@ In the list of posts displayed in the list, drag the posts to set the display or
|
||||
|
||||
== Frequently Asked Questions ==
|
||||
|
||||
|
||||
== Screenshots ==
|
||||
screenshot-1.png
|
||||
screenshot-2.png
|
||||
|
||||
+17
-7
@@ -10,6 +10,7 @@ $submit_type = APOP_UI::input_post_filter( 'apop_submit_type', 'str' );
|
||||
<li><?php _e( 'Category', APOP_DOMAIN ); ?></li>
|
||||
<li><?php _e( 'Tag', APOP_DOMAIN ); ?></li>
|
||||
<li><?php _e( 'Custom taxonomy', APOP_DOMAIN ); ?></li>
|
||||
<li><?php _e( 'Custom posts', APOP_DOMAIN ); ?></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<form action="" method="post">
|
||||
@@ -83,30 +84,39 @@ $submit_type = APOP_UI::input_post_filter( 'apop_submit_type', 'str' );
|
||||
<div class="tax_sort_box">
|
||||
<?php
|
||||
$tax_lists = array( 'category' => APOP_UI::get_cat_tag_list( 'cat', 'category' ) );
|
||||
$tax_title_text = __('Category', APOP_DOMAIN);
|
||||
$tax_title_text = __( 'Category', APOP_DOMAIN );
|
||||
include APOP_PLUGIN_PATH . 'template/order_parts_taxonomy.php';
|
||||
?>
|
||||
<?php include APOP_PLUGIN_PATH . 'template/order_parts_taxonomy.php'; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="post-order-box">
|
||||
<div class="tax_sort_box">
|
||||
<?php
|
||||
$tax_lists = array( 'tag_id' => APOP_UI::get_cat_tag_list( 'tag', 'post_tag' ) );
|
||||
$tax_title_text = __('Tag', APOP_DOMAIN);
|
||||
$tax_title_text = __( 'Tag', APOP_DOMAIN );
|
||||
include APOP_PLUGIN_PATH . 'template/order_parts_taxonomy.php';
|
||||
?>
|
||||
<?php include APOP_PLUGIN_PATH . 'template/order_parts_taxonomy.php'; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="post-order-box">
|
||||
<div class="tax_sort_box">
|
||||
<?php
|
||||
$tax_lists = array( 'taxonomy' => APOP_UI::get_cat_tag_list( 'tax', 'taxonomy' ) );
|
||||
$tax_title_text = __('Custom taxonomy', APOP_DOMAIN);
|
||||
$tax_title_text = __( 'Custom taxonomy', APOP_DOMAIN );
|
||||
include APOP_PLUGIN_PATH . 'template/order_parts_taxonomy.php'; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="post-order-box">
|
||||
<div class="tax_sort_box">
|
||||
<?php
|
||||
$custom_posts_lists = APOP_UI::get_enable_custompost_archive();
|
||||
$custom_posts_title_text = __( 'Custom posts', APOP_DOMAIN );
|
||||
include APOP_PLUGIN_PATH . 'template/order_parts_custom_posts.php';
|
||||
?>
|
||||
<?php include APOP_PLUGIN_PATH . 'template/order_parts_taxonomy.php'; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="apop-submit"><input type="submit" name="submit" class="button-primary" value="<?php _e( 'Save changes', APOP_DOMAIN ); ?>"/></p>
|
||||
<p class="apop-submit"><input type="submit" name="submit" class="button-primary"
|
||||
value="<?php _e( 'Save changes', APOP_DOMAIN ); ?>"/></p>
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,62 @@
|
||||
<?php if ( isset( $custom_posts_lists, $custom_posts_title_text ) ): ?>
|
||||
<div class="list-orders-outer">
|
||||
<?php if ( count( $custom_posts_lists ) > 0 ): ?>
|
||||
<?php foreach ( $custom_posts_lists as $custom_post ) : ?>
|
||||
<div class="list-orders-inner">
|
||||
<h3><?php echo esc_html( $custom_post['label'] ); ?></h3>
|
||||
<?php
|
||||
$order_target_data = get_option( '_apop_custompost_archive_sort_type' );
|
||||
if ( isset( $order_target_data[ $custom_post['slug'] ] ) ) {
|
||||
$order_target = $order_target_data[ $custom_post['slug'] ];
|
||||
} else {
|
||||
$order_target = 2;
|
||||
}
|
||||
?>
|
||||
<!-- ソートタイプ -->
|
||||
<ul class="sort-menu-list"
|
||||
data-order_target="<?php echo esc_attr( $order_target ); ?>">
|
||||
<li>
|
||||
<label>
|
||||
<input class="sort_menu" type="radio"
|
||||
name="_apop_custompost_archive_sort_type[<?php echo esc_attr( $custom_post['slug'] ); ?>]"
|
||||
value="2"<?php checked( $order_target, 2 ); ?>><?php _e( 'Standard + custom field sort', APOP_DOMAIN ); ?>
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<label>
|
||||
<input class="sort_menu" type="radio"
|
||||
name="_apop_custompost_archive_sort_type[<?php echo esc_attr( $custom_post['slug'] ); ?>]"
|
||||
value="1"<?php checked( $order_target, 1 ); ?>><?php _e( 'Drag sort', APOP_DOMAIN ); ?>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="sort_box">
|
||||
<hr>
|
||||
<p><?php _e( 'Click "Save Changes" to register the sort.', APOP_DOMAIN ); ?></p>
|
||||
<ul class="post-order-list drag-sort">
|
||||
<?php echo APOP_UI::create_custompost_archive_order_list( $custom_post['slug'] ); ?>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="sort_box">
|
||||
<hr>
|
||||
<p><?php _e( 'Click "Save Changes" to register the sort.', APOP_DOMAIN ); ?></p>
|
||||
<div class="enable-box">
|
||||
<h4><?php _e( 'Enabled', APOP_DOMAIN ); ?></h4>
|
||||
<ul class="post-order-list search-normal-sort">
|
||||
<?php APOP_UI::create_custompost_archive_normal_list( $custom_post['slug'] ); ?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="disable-box">
|
||||
<h4><?php _e( 'Disabled', APOP_DOMAIN ); ?></h4>
|
||||
<ul class="disable-normal-list"></ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
<?php else: ?>
|
||||
<p class="no-registered-exp"><?php _e( 'No', APOP_DOMAIN ); ?><?php echo esc_html( $custom_posts_title_text . ' ' ); ?><?php _e( 'has been selected.', APOP_DOMAIN ); ?></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php endif;
|
||||
@@ -40,6 +40,7 @@
|
||||
<?php APOP_UI::disp_tax_setting( 'category', __( 'Categories setting', APOP_DOMAIN ), '_apop_cat_order' ); ?>
|
||||
<?php APOP_UI::disp_tax_setting( 'post_tag', __( 'Tags setting', APOP_DOMAIN ), '_apop_tag_order' ); ?>
|
||||
<?php APOP_UI::disp_tax_setting( 'taxonomy', __( 'Custom Taxonomies setting', APOP_DOMAIN ), '_apop_tax_order' ); ?>
|
||||
<?php APOP_UI::disp_customposts_setting( 'custompost_archive', __( 'Custom Posts Archive setting', APOP_DOMAIN ), '_apop_custompost_archive_order' ); ?>
|
||||
</table>
|
||||
<p class="submit"><input type="submit" name="Submit" class="button-primary"
|
||||
value="<?php _e( 'Save changes', APOP_DOMAIN ); ?>"/>
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php if ( isset( $custom_post_data, $order_name, $order ) ): ?>
|
||||
<dl class="apop-setting-list">
|
||||
<dt><?php _e( 'Targets', APOP_DOMAIN ); ?></dt>
|
||||
<dd>
|
||||
<ul class="order-setting-list">
|
||||
<?php foreach ( $custom_post_data as $custom_post_datum => $label ): ?>
|
||||
<?php
|
||||
$opt_cat = get_option( $order_name );
|
||||
$check_slug = $opt_cat['target_post'][ $custom_post_datum ] ?? '';
|
||||
?>
|
||||
<li>
|
||||
<div class="select_cat">
|
||||
<label>
|
||||
<input type="hidden"
|
||||
name="<?php echo esc_attr( $order_name ); ?>[target_post][<?php echo esc_attr( $custom_post_datum ); ?>]"
|
||||
value="0">
|
||||
<input class="select_cat_checkbox" type="checkbox"
|
||||
name="<?php echo esc_attr( $order_name ); ?>[target_post][<?php echo esc_attr( $custom_post_datum ); ?>]"
|
||||
<?php checked( $check_slug, 1 ); ?>
|
||||
value="1">
|
||||
<?php echo esc_html( $label ); ?>
|
||||
</label>
|
||||
</div>
|
||||
<?php $per_page_data = APOP_UI::create_custom_posts_per_page( get_option( '_apop_per_page' ), $order, $custom_post_datum ); ?>
|
||||
<div class="select-per-page">
|
||||
<ul>
|
||||
<li>
|
||||
<label>
|
||||
<input class="per_page_cat" type="radio"
|
||||
name="_apop_per_page[<?php echo esc_attr($order); ?>][<?php echo esc_attr( $custom_post_datum ); ?>]"
|
||||
value="default"<?php checked( $per_page_data['_per_page'], 'default' ); ?>><?php _e( 'Follow display settings', APOP_DOMAIN ); ?>
|
||||
(<?php echo esc_html( get_option( 'posts_per_page' ) ); ?>
|
||||
<?php _e( 'Posts', APOP_DOMAIN ); ?>)</label>
|
||||
</li>
|
||||
<li><label>
|
||||
<input class="per_page_cat" type="radio"
|
||||
name="_apop_per_page[<?php echo esc_attr( $order ); ?>][<?php echo esc_attr( $custom_post_datum ); ?>]"
|
||||
value="all"<?php checked( $per_page_data['_per_page'], 'all' ); ?>><?php _e( 'Follow global settings', APOP_DOMAIN ); ?>
|
||||
</label>
|
||||
</li>
|
||||
<li><label>
|
||||
<input class="per_page_cat" type="radio"
|
||||
name="_apop_per_page[<?php echo esc_attr( $order ); ?>][<?php echo esc_attr( $custom_post_datum ); ?>]"
|
||||
value="-1"<?php checked( $per_page_data['_per_page'], '-1' ); ?>><?php _e( 'All posts', APOP_DOMAIN ); ?>
|
||||
</label>
|
||||
</li>
|
||||
<li class="set_number_list">
|
||||
<label><input class="per_page_cat set_number" type="radio"
|
||||
name="_apop_per_page[<?php echo esc_attr( $order ); ?>][<?php echo esc_attr( $custom_post_datum ); ?>]"
|
||||
value=""<?php echo esc_attr( $per_page_data['_checked'] ); ?>><?php _e( 'Set the number posts', APOP_DOMAIN ); ?>
|
||||
<input class="per_page_cat_input" type="text"
|
||||
name="_apop_per_page[<?php echo esc_attr( $order ); ?>][<?php echo esc_attr( $custom_post_datum ); ?>]"
|
||||
value="<?php echo esc_attr( $per_page_data['_per_page_num'] ); ?>"
|
||||
required>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
<?php endif;
|
||||
+6
-2
@@ -9,13 +9,16 @@ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
||||
$param_settings = array(
|
||||
'_apop_normal_order_param',
|
||||
'_apop_search_order_param',
|
||||
'_apop_tax_order_param',
|
||||
'_apop_tax_sort_type',
|
||||
'_apop_normal_order',
|
||||
'_apop_search_order',
|
||||
'_apop_tax_order_param',
|
||||
'_apop_tax_sort_type',
|
||||
'_apop_cat_order',
|
||||
'_apop_tag_order',
|
||||
'_apop_tax_order',
|
||||
'_apop_custompost_archive_order_param',
|
||||
'_apop_custompost_archive_sort_type',
|
||||
'_apop_custompost_archive_order',
|
||||
'_apop_per_page',
|
||||
);
|
||||
foreach ( $param_settings as $param_setting ) {
|
||||
@@ -37,6 +40,7 @@ $tax_order_settings = array(
|
||||
'_apop_post_category_',
|
||||
'_apop_post_post_tag_',
|
||||
'_apop_post_tax_',
|
||||
'_apop_customposts_',
|
||||
'_apop_postorder_'
|
||||
);
|
||||
foreach ( $tax_order_settings as $tax_order_setting ) {
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
} // Exit if accessed directly
|
||||
|
||||
if ( ! trait_exists( 'CUSTOMPOSTS' ) ) {
|
||||
|
||||
/**
|
||||
* カスタム投稿アーカイブのソート
|
||||
* Trait CUSTOMPOSTS
|
||||
*/
|
||||
trait CUSTOMPOSTS {
|
||||
|
||||
public static function get_enable_custompost_archive(): array {
|
||||
$opt = get_option( '_apop_custompost_archive_order' );
|
||||
if ( ! isset( $opt['target_post'] ) ) {
|
||||
return array();
|
||||
}
|
||||
$custom_post_list = array();
|
||||
foreach ( $opt['target_post'] as $target => $check ) {
|
||||
if ( $check == '1' ) {
|
||||
$custom_post_list[] = [
|
||||
'label' => get_post_type_object( $target )->label,
|
||||
'slug' => $target,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
return $custom_post_list;
|
||||
}
|
||||
|
||||
public static function create_custompost_archive_order_list( $slug ): string {
|
||||
$args = array(
|
||||
'posts_per_page' => - 1,
|
||||
'post_type' => array( $slug ),
|
||||
'orderby' => 'meta_value_num',
|
||||
'order' => 'ASC',
|
||||
);
|
||||
self::create_sort_post_list_meta_query( $args, '_apop_customposts_' . $slug );
|
||||
$return_data = get_posts( $args );
|
||||
$list = array();
|
||||
foreach ( $return_data as $key => $target_post ) {
|
||||
$sort_num = $key + 1;
|
||||
$no_order = self::is_sort_custompost_archive_registered( $target_post->ID, $slug ) ? '' : ' no-order';
|
||||
$list[] = '
|
||||
<li class="product-list' . esc_attr( $no_order ) . '">' . '<span class="sort-num-label">' . esc_attr( $sort_num ) . '</span>' . get_the_title( $target_post->ID ) . '
|
||||
<input type="hidden" class="list-order" name="_apop_customposts[' . esc_attr( $slug ) . '][' . esc_attr( $target_post->ID ) . ']" value="' . esc_attr( $sort_num ) . '">
|
||||
</li>';
|
||||
}
|
||||
|
||||
return implode( PHP_EOL, $list );
|
||||
}
|
||||
|
||||
|
||||
private static function is_sort_custompost_archive_registered( $id, $slug ): bool {
|
||||
$post_meta = get_post_meta( $id, '_apop_customposts_' . $slug, true );
|
||||
if ( ! empty( $post_meta ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static function create_custompost_archive_normal_list( $slug ) {
|
||||
$name_keys = array(
|
||||
'name_key' => 'apop_custompost_archive_order_param[' . $slug . ']',
|
||||
'get_option_key' => '_apop_custompost_archive_order_param',
|
||||
);
|
||||
$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 ( isset( $order_param_base[ $slug ] ) ) {
|
||||
$order_param = $order_param_base[ $slug ];
|
||||
}
|
||||
self::create_normal_sort_list( $name_key, $order_param );
|
||||
}
|
||||
|
||||
private function set_custompost_orderby( $query, $post_type ) {
|
||||
$sort_type = get_option( '_apop_custompost_archive_sort_type' )[ $post_type ];
|
||||
if ( $sort_type == 1 ) {
|
||||
$sort_meta_key = self::set_custompost_sort_meta_key( $post_type );
|
||||
if ( is_null( $sort_meta_key ) ) {
|
||||
$this->set_search_normal_orderby( $query, 'custompost_archive' );
|
||||
} else {
|
||||
$query->set( 'meta_query', self::get_all_post_args( $sort_meta_key ) );
|
||||
$query->set( 'orderby', array( 'meta_value' => 'ASC', ) );
|
||||
}
|
||||
} else {
|
||||
$meta_orderby = self::set_custompost_custom_field_orderby( $post_type );
|
||||
if ( isset( $meta_orderby['meta_query'] ) ) {
|
||||
$query->set( 'meta_query', $meta_orderby['meta_query'] );
|
||||
}
|
||||
if ( isset( $meta_orderby['orderby'] ) ) {
|
||||
$query->set( 'orderby', $meta_orderby['orderby'] );
|
||||
}
|
||||
}
|
||||
$per_page_option_data = self::set_custompost_per_page( $post_type );
|
||||
$query->set( 'posts_per_page', $per_page_option_data );
|
||||
}
|
||||
|
||||
private static function set_custompost_sort_meta_key( $post_type ) {
|
||||
$order_settings = get_option( '_apop_custompost_archive_order' );
|
||||
if ( isset( $order_settings['target_post'][ $post_type ] ) && $order_settings['target_post'][ $post_type ] == 1 ) {
|
||||
return '_apop_customposts_' . $post_type;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static function set_custompost_custom_field_orderby( $post_type ): array {
|
||||
$order_param = get_option( '_apop_custompost_archive_order_param' );
|
||||
if ( isset( $order_param[ $post_type ] ) ) {
|
||||
return self::set_custom_field_orderby( $order_param[ $post_type ] );
|
||||
}
|
||||
}
|
||||
|
||||
private static function set_custompost_per_page( $post_type ) {
|
||||
$per_page_option = get_option( '_apop_per_page' );
|
||||
if ( ! $per_page_option ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$per_page_option_data = $per_page_option['custompost_archive'][ $post_type ];
|
||||
if ( ! isset( $per_page_option_data ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $per_page_option_data == 'default' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $per_page_option_data == 'all' ) {
|
||||
if ( $per_page_option['search'] == 'default' ) {
|
||||
return;
|
||||
}
|
||||
$per_page_option_data = $per_page_option['search'];
|
||||
}
|
||||
|
||||
return $per_page_option_data;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+89
-203
@@ -12,6 +12,11 @@ if ( ! trait_exists( 'APOP_ORDER_SETTING' ) ) {
|
||||
add_action( 'pre_get_posts', array( $this, 'apop_posts_per_page' ), 1 );
|
||||
}
|
||||
|
||||
/**
|
||||
* ソートのクエリを生成
|
||||
*
|
||||
* @param $query
|
||||
*/
|
||||
public function apop_posts_per_page( $query ) {
|
||||
|
||||
if ( is_admin() || ! $query->is_main_query() ) {
|
||||
@@ -26,6 +31,13 @@ if ( ! trait_exists( 'APOP_ORDER_SETTING' ) ) {
|
||||
$this->set_search_normal_orderby( $query, 'search' );
|
||||
}
|
||||
|
||||
if ( is_post_type_archive() ) {
|
||||
$post_type = get_query_var( 'post_type' );
|
||||
if ( $post_type ) {
|
||||
$this->set_custompost_orderby( $query, $post_type );
|
||||
}
|
||||
}
|
||||
|
||||
if ( is_category() ) {
|
||||
$cat = get_category_by_slug( $query->query_vars['category_name'] );
|
||||
if ( isset( $cat->term_id ) ) {
|
||||
@@ -47,33 +59,9 @@ if ( ! trait_exists( 'APOP_ORDER_SETTING' ) ) {
|
||||
}
|
||||
}
|
||||
|
||||
private static function set_per_page( $target, $id = null ) {
|
||||
$per_page_option = get_option( '_apop_per_page' );
|
||||
|
||||
if(!$per_page_option){
|
||||
return;
|
||||
}
|
||||
|
||||
if ( is_null( $id ) ) {
|
||||
$per_page_option_data = $per_page_option[ $target ];
|
||||
} else {
|
||||
$per_page_target = $target == 'tax' ? 'taxonomy' : $target;
|
||||
$per_page_option_data = $per_page_option[ $per_page_target ][ $id ];
|
||||
}
|
||||
|
||||
if ( ! isset( $per_page_option_data ) ) {
|
||||
return;
|
||||
}
|
||||
if ( $per_page_option_data == 'default' ) {
|
||||
return;
|
||||
}
|
||||
if ( $per_page_option_data == 'all' ) {
|
||||
$per_page_option_data = $per_page_option['search'];;
|
||||
}
|
||||
|
||||
return $per_page_option_data;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// 最近の投稿と検索のソートのクエリ生成
|
||||
//-----------------------------------------------------------
|
||||
private function set_search_normal_orderby( $query, $type ) {
|
||||
$apop_order = get_option( '_apop_' . $type . '_order' ) ?? 1;
|
||||
if ( $apop_order == 2 ) {
|
||||
@@ -93,98 +81,9 @@ if ( ! trait_exists( 'APOP_ORDER_SETTING' ) ) {
|
||||
$query->set( 'posts_per_page', $per_page_option_data );
|
||||
}
|
||||
|
||||
private static function set_custom_filed_sort( &$orderby, $order_col, $orders, $sort_param ): array {
|
||||
if ( strpos( $order_col, 'custom_field' ) !== false ) {
|
||||
if($orders['field']['custom_field_type'] == 2){
|
||||
$meta_key = APOP_CUSTOM_FIELD_PREFIX . $orders['field']['meta_key'];
|
||||
}else{
|
||||
$meta_key = $orders['field']['meta_key'];
|
||||
}
|
||||
$type = 'CHAR';
|
||||
if ( $orders['field']['value_type'] == 'meta_value_num' ) {
|
||||
$type = 'NUMERIC';
|
||||
} elseif ( $orders['field']['value_type'] == 'meta_value' ) {
|
||||
$type = 'CHAR';
|
||||
} elseif ( $orders['field']['value_type'] == 'meta_date' ) {
|
||||
$type = 'DATE';
|
||||
}
|
||||
if ( isset( $orders['sort'] ) ) {
|
||||
$orderby[ $meta_key ] = $sort_param[ $orders['sort'] ];
|
||||
}
|
||||
|
||||
return array( $meta_key, $type );
|
||||
}
|
||||
}
|
||||
|
||||
private function set_orderby( $query, $id, $target, $order_key ) {
|
||||
$sort_type = self::get_tax_sort_type( $id );
|
||||
if ( $sort_type == 1 ) {
|
||||
$sort_meta_key = self::set_tax_sort_meta_key( $id, $target, $order_key );
|
||||
if ( is_null( $sort_meta_key ) ) {
|
||||
$this->set_search_normal_orderby( $query, 'normal' );
|
||||
} else {
|
||||
$query->set( 'meta_query', self::get_all_post_args( $sort_meta_key ) );
|
||||
$query->set( 'orderby', array( 'meta_value' => 'ASC', ) );
|
||||
}
|
||||
} else {
|
||||
$meta_orderby = self::set_tax_custom_field_orderby( $id );
|
||||
if ( isset( $meta_orderby['meta_query'] ) ) {
|
||||
$query->set( 'meta_query', $meta_orderby['meta_query'] );
|
||||
}
|
||||
if ( isset( $meta_orderby['orderby'] ) ) {
|
||||
$query->set( 'orderby', $meta_orderby['orderby'] );
|
||||
}
|
||||
}
|
||||
$per_page_option_data = self::set_per_page( self::get_per_page_tag( $target ), $id );
|
||||
$query->set( 'posts_per_page', $per_page_option_data );
|
||||
}
|
||||
|
||||
private static function get_tax_sort_type( $id ) {
|
||||
$sort_type = get_option( '_apop_tax_sort_type' );
|
||||
|
||||
return $sort_type[ $id ] ?? 1;
|
||||
}
|
||||
|
||||
private static function set_tax_sort_meta_key( $id, $target, $order_key ) {
|
||||
$order_settings = get_option( '_apop_' . $order_key . '_order' );
|
||||
if ( isset( $order_settings['target_cat'][ $id ] ) && $order_settings['target_cat'][ $id ] == 1 ) {
|
||||
return '_apop_post_' . $target . '_' . $id;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static function set_tax_custom_field_orderby( $id ): array {
|
||||
$tax_order_param = get_option( '_apop_tax_order_param' );
|
||||
if ( isset( $tax_order_param[ $id ] ) ) {
|
||||
return self::set_custom_field_orderby( $tax_order_param[ $id ] );
|
||||
}
|
||||
}
|
||||
|
||||
private static function get_per_page_tag( $target ) {
|
||||
if ( $target == 'post_tag' ) {
|
||||
return 'tag';
|
||||
}
|
||||
|
||||
return $target;
|
||||
}
|
||||
|
||||
private static function get_all_post_args( $sort_meta_key, $type = 'numeric' ): array {
|
||||
return array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => $sort_meta_key,
|
||||
'compare' => 'EXISTS',
|
||||
'type' => $type,
|
||||
),
|
||||
array(
|
||||
'key' => $sort_meta_key,
|
||||
'compare' => 'NOT EXISTS',
|
||||
'type' => $type,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
//標準ソート+カスタムフィールドソートのカスタムフィールドデータ取得
|
||||
//-----------------------------------------------------------
|
||||
private static function set_custom_field_orderby( $apop_order_param ): array {
|
||||
if ( ! $apop_order_param ) {
|
||||
return array();
|
||||
@@ -211,94 +110,81 @@ if ( ! trait_exists( 'APOP_ORDER_SETTING' ) ) {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* 1ページ表示件数を取得する
|
||||
* APOP::per_page(ID, [TARGET]);
|
||||
* [TARGET]
|
||||
* cat
|
||||
* tag
|
||||
* tax
|
||||
*
|
||||
* @param string $target
|
||||
* @param null $id
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function per_page( $id = null, string $target = 'search' ) {
|
||||
if ( $target == 'cat' ) {
|
||||
$target = 'category';
|
||||
}
|
||||
|
||||
return array( 'posts_per_page' => self::set_per_page( $target, $id ) );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 最新の投稿ページのソートを取得する
|
||||
* APOP::orderby_normal()
|
||||
* @return array|null
|
||||
*/
|
||||
public static function orderby_normal() {
|
||||
$apop_order = get_option( '_apop_normal_order' ) ?? 1;
|
||||
if ( $apop_order == 2 ) {
|
||||
return array(
|
||||
'meta_query' => self::get_all_post_args( '_apop_normal_order' ),
|
||||
'orderby' => array( 'meta_value_num' => 'ASC' ),
|
||||
);
|
||||
} else {
|
||||
$apop_order_param = get_option( '_apop_normal_order_param' );
|
||||
$meta_orderby = self::set_custom_field_orderby( $apop_order_param );
|
||||
if ( is_null( $meta_orderby['meta_query'] ) ) {
|
||||
unset( $meta_orderby['meta_query'] );
|
||||
}
|
||||
if ( is_null( $meta_orderby['orderby'] ) ) {
|
||||
unset( $meta_orderby['orderby'] );
|
||||
}
|
||||
|
||||
return $meta_orderby;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* カテゴリー、タグ、カスタム分類のソートを取得する
|
||||
* APOP::orderby_tax([ID, TARGET], );
|
||||
* [TARGET]
|
||||
* cat
|
||||
* tag
|
||||
* tax
|
||||
*
|
||||
* @param $id
|
||||
* @param $target
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function orderby_tax( $id, $target ) {
|
||||
$sort_type = self::get_tax_sort_type( $id );
|
||||
if ( $sort_type == 1 ) {
|
||||
$order_key = $target;
|
||||
if ( $target == 'tag' ) {
|
||||
$target == 'post_tag';
|
||||
} elseif ( $target = 'cat' ) {
|
||||
$target == 'category';
|
||||
}
|
||||
$sort_meta_key = self::set_tax_sort_meta_key( $id, $target, $order_key );
|
||||
if ( is_null( $sort_meta_key ) ) {
|
||||
return self::orderby_normal();
|
||||
private static function set_custom_filed_sort( &$orderby, $order_col, $orders, $sort_param ): array {
|
||||
if ( strpos( $order_col, 'custom_field' ) !== false ) {
|
||||
if ( $orders['field']['custom_field_type'] == 2 ) {
|
||||
$meta_key = APOP_CUSTOM_FIELD_PREFIX . $orders['field']['meta_key'];
|
||||
} else {
|
||||
return array(
|
||||
'meta_query' => self::get_all_post_args( $sort_meta_key ),
|
||||
'orderby' => array( 'meta_value_num' => 'ASC' ),
|
||||
);
|
||||
$meta_key = $orders['field']['meta_key'];
|
||||
}
|
||||
} else {
|
||||
return self::set_tax_custom_field_orderby( $id );
|
||||
$type = 'CHAR';
|
||||
if ( $orders['field']['value_type'] == 'meta_value_num' ) {
|
||||
$type = 'NUMERIC';
|
||||
} elseif ( $orders['field']['value_type'] == 'meta_value' ) {
|
||||
$type = 'CHAR';
|
||||
} elseif ( $orders['field']['value_type'] == 'meta_date' ) {
|
||||
$type = 'DATE';
|
||||
}
|
||||
if ( isset( $orders['sort'] ) ) {
|
||||
$orderby[ $meta_key ] = $sort_param[ $orders['sort'] ];
|
||||
}
|
||||
|
||||
return array( $meta_key, $type );
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// ソートキーが無くともデータを抽出するようEXISTSとNOT EXISTSをリレーションする
|
||||
//-----------------------------------------------------------
|
||||
private static function get_all_post_args( $sort_meta_key, $type = 'numeric' ): array {
|
||||
return array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => $sort_meta_key,
|
||||
'compare' => 'EXISTS',
|
||||
'type' => $type,
|
||||
),
|
||||
array(
|
||||
'key' => $sort_meta_key,
|
||||
'compare' => 'NOT EXISTS',
|
||||
'type' => $type,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------
|
||||
// 1ページ表示件数の取得
|
||||
//-----------------------------------------------------------
|
||||
private static function set_per_page( $target, $id = null ) {
|
||||
$per_page_option = get_option( '_apop_per_page' );
|
||||
|
||||
if ( ! $per_page_option ) {
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
if ( is_null( $id ) ) {
|
||||
$per_page_option_data = $per_page_option[ $target ];
|
||||
} else {
|
||||
$per_page_target = $target == 'tax' ? 'taxonomy' : $target;
|
||||
$per_page_option_data = $per_page_option[ $per_page_target ][ $id ];
|
||||
}
|
||||
|
||||
if ( ! isset( $per_page_option_data ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $per_page_option_data == 'default' ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $per_page_option_data == 'all' ) {
|
||||
if ( $per_page_option['search'] == 'default' ) {
|
||||
return;
|
||||
}
|
||||
$per_page_option_data = $per_page_option['search'];
|
||||
}
|
||||
|
||||
return $per_page_option_data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
} // Exit if accessed directly
|
||||
|
||||
if ( ! trait_exists( 'APOP_OUTPUT' ) ) {
|
||||
/**
|
||||
* TODO: 出力用のコード
|
||||
* Trait APOP_OUTPUT
|
||||
*/
|
||||
trait APOP_OUTPUT {
|
||||
/**
|
||||
*
|
||||
* 1ページ表示件数を取得する
|
||||
* APOP::per_page(ID, [TARGET]);
|
||||
* [TARGET]
|
||||
* cat
|
||||
* tag
|
||||
* tax
|
||||
*
|
||||
* @param string $target
|
||||
* @param null $id
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function per_page( $id = null, string $target = 'search' ) {
|
||||
if ( $target == 'cat' ) {
|
||||
$target = 'category';
|
||||
}
|
||||
|
||||
return array( 'posts_per_page' => self::set_per_page( $target, $id ) );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 最新の投稿ページのソートを取得する
|
||||
* APOP::orderby_normal()
|
||||
* @return array|null
|
||||
*/
|
||||
public static function orderby_normal() {
|
||||
$apop_order = get_option( '_apop_normal_order' ) ?? 1;
|
||||
if ( $apop_order == 2 ) {
|
||||
return array(
|
||||
'meta_query' => self::get_all_post_args( '_apop_normal_order' ),
|
||||
'orderby' => array( 'meta_value_num' => 'ASC' ),
|
||||
);
|
||||
} else {
|
||||
$apop_order_param = get_option( '_apop_normal_order_param' );
|
||||
$meta_orderby = self::set_custom_field_orderby( $apop_order_param );
|
||||
if ( is_null( $meta_orderby['meta_query'] ) ) {
|
||||
unset( $meta_orderby['meta_query'] );
|
||||
}
|
||||
if ( is_null( $meta_orderby['orderby'] ) ) {
|
||||
unset( $meta_orderby['orderby'] );
|
||||
}
|
||||
|
||||
return $meta_orderby;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* カテゴリー、タグ、カスタム分類のソートを取得する
|
||||
* APOP::orderby_tax([ID, TARGET], );
|
||||
* [TARGET]
|
||||
* cat
|
||||
* tag
|
||||
* tax
|
||||
*
|
||||
* @param $id
|
||||
* @param $target
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function orderby_tax( $id, $target ) {
|
||||
$sort_type = self::get_tax_sort_type( $id );
|
||||
if ( $sort_type == 1 ) {
|
||||
$order_key = $target;
|
||||
if ( $target == 'tag' ) {
|
||||
$target == 'post_tag';
|
||||
} elseif ( $target = 'cat' ) {
|
||||
$target == 'category';
|
||||
}
|
||||
$sort_meta_key = self::set_tax_sort_meta_key( $id, $target, $order_key );
|
||||
if ( is_null( $sort_meta_key ) ) {
|
||||
return self::orderby_normal();
|
||||
} else {
|
||||
return array(
|
||||
'meta_query' => self::get_all_post_args( $sort_meta_key ),
|
||||
'orderby' => array( 'meta_value_num' => 'ASC' ),
|
||||
);
|
||||
}
|
||||
} else {
|
||||
return self::set_tax_custom_field_orderby( $id );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
exit;
|
||||
} // Exit if accessed directly
|
||||
|
||||
if ( ! trait_exists( 'TAX' ) ) {
|
||||
/**
|
||||
* タクソノミーのソート
|
||||
* Trait TAX
|
||||
*/
|
||||
trait TAX {
|
||||
private function set_orderby( $query, $id, $target, $order_key ) {
|
||||
$sort_type = self::get_tax_sort_type( $id );
|
||||
if ( $sort_type == 1 ) {
|
||||
$sort_meta_key = self::set_tax_sort_meta_key( $id, $target, $order_key );
|
||||
if ( is_null( $sort_meta_key ) ) {
|
||||
$this->set_search_normal_orderby( $query, 'normal' );
|
||||
} else {
|
||||
$query->set( 'meta_query', self::get_all_post_args( $sort_meta_key ) );
|
||||
$query->set( 'orderby', array( 'meta_value' => 'ASC', ) );
|
||||
}
|
||||
} else {
|
||||
$meta_orderby = self::set_tax_custom_field_orderby( $id );
|
||||
if ( isset( $meta_orderby['meta_query'] ) ) {
|
||||
$query->set( 'meta_query', $meta_orderby['meta_query'] );
|
||||
}
|
||||
if ( isset( $meta_orderby['orderby'] ) ) {
|
||||
$query->set( 'orderby', $meta_orderby['orderby'] );
|
||||
}
|
||||
}
|
||||
$per_page_option_data = self::set_per_page( self::get_per_page_tag( $target ), $id );
|
||||
$query->set( 'posts_per_page', $per_page_option_data );
|
||||
}
|
||||
|
||||
private static function get_tax_sort_type( $id ) {
|
||||
$sort_type = get_option( '_apop_tax_sort_type' );
|
||||
|
||||
return $sort_type[ $id ] ?? 1;
|
||||
}
|
||||
|
||||
private static function set_tax_sort_meta_key( $id, $target, $order_key ) {
|
||||
$order_settings = get_option( '_apop_' . $order_key . '_order' );
|
||||
if ( isset( $order_settings['target_cat'][ $id ] ) && $order_settings['target_cat'][ $id ] == 1 ) {
|
||||
return '_apop_post_' . $target . '_' . $id;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static function set_tax_custom_field_orderby( $id ): array {
|
||||
$tax_order_param = get_option( '_apop_tax_order_param' );
|
||||
if ( isset( $tax_order_param[ $id ] ) ) {
|
||||
return self::set_custom_field_orderby( $tax_order_param[ $id ] );
|
||||
}
|
||||
}
|
||||
|
||||
private static function get_per_page_tag( $target ) {
|
||||
if ( $target == 'post_tag' ) {
|
||||
return 'tag';
|
||||
}
|
||||
|
||||
return $target;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user