Improve chapter and story meta query setup
This commit is contained in:
parent
3b03d2b251
commit
424321a313
24
chapters.php
24
chapters.php
@ -23,6 +23,7 @@ $orderby = array_intersect( [ strtolower( $_GET['orderby'] ?? 0 ) ], fictioneer_
|
||||
$orderby = reset( $orderby ) ?: 'modified'; // Sanitized
|
||||
$ago = $_GET['ago'] ?? 0;
|
||||
$ago = is_numeric( $ago ) ? absint( $ago ) : sanitize_text_field( $ago );
|
||||
$meta_query_stack = [];
|
||||
|
||||
// Prepare query
|
||||
$query_args = array(
|
||||
@ -36,12 +37,16 @@ $query_args = array(
|
||||
'update_post_term_cache' => ! get_option( 'fictioneer_hide_taxonomies_on_chapter_cards' )
|
||||
);
|
||||
|
||||
// Use extended meta query?
|
||||
// Prepare base meta query part
|
||||
if ( get_option( 'fictioneer_disable_extended_chapter_list_meta_queries' ) ) {
|
||||
$query_args['meta_key'] = 'fictioneer_chapter_hidden';
|
||||
$query_args['meta_value'] = '0';
|
||||
$meta_query_stack[] = array(
|
||||
array(
|
||||
'key' => 'fictioneer_chapter_hidden',
|
||||
'value' => '0'
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$query_args['meta_query'] = array(
|
||||
$meta_query_stack[] = array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_chapter_hidden',
|
||||
@ -54,6 +59,17 @@ if ( get_option( 'fictioneer_disable_extended_chapter_list_meta_queries' ) ) {
|
||||
);
|
||||
}
|
||||
|
||||
// Build meta query
|
||||
$query_args['meta_query'] = [];
|
||||
|
||||
if ( count( $meta_query_stack ) > 1 ) {
|
||||
$query_args['meta_query']['relation'] = 'AND';
|
||||
}
|
||||
|
||||
foreach ( $meta_query_stack as $part ) {
|
||||
$query_args['meta_query'][] = $part;
|
||||
}
|
||||
|
||||
// Append date query (if any)
|
||||
$query_args = fictioneer_append_date_query( $query_args, $ago, $orderby );
|
||||
|
||||
|
24
stories.php
24
stories.php
@ -24,6 +24,7 @@ $orderby = array_intersect( [ strtolower( $_GET['orderby'] ?? 0 ) ], fictioneer_
|
||||
$orderby = reset( $orderby ) ?: 'modified'; // Sanitized
|
||||
$ago = $_GET['ago'] ?? 0;
|
||||
$ago = is_numeric( $ago ) ? absint( $ago ) : sanitize_text_field( $ago );
|
||||
$meta_query_stack = [];
|
||||
|
||||
// Prepare query
|
||||
$query_args = array (
|
||||
@ -37,12 +38,16 @@ $query_args = array (
|
||||
'update_post_term_cache' => ! get_option( 'fictioneer_hide_taxonomies_on_story_cards' )
|
||||
);
|
||||
|
||||
// Use extended meta query?
|
||||
// Prepare base meta query part
|
||||
if ( get_option( 'fictioneer_disable_extended_story_list_meta_queries' ) ) {
|
||||
$query_args['meta_key'] = 'fictioneer_story_hidden';
|
||||
$query_args['meta_value'] = '0';
|
||||
$meta_query_stack[] = array(
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'value' => '0'
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$query_args['meta_query'] = array(
|
||||
$meta_query_stack[] = array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
@ -55,6 +60,17 @@ if ( get_option( 'fictioneer_disable_extended_story_list_meta_queries' ) ) {
|
||||
);
|
||||
}
|
||||
|
||||
// Build meta query
|
||||
$query_args['meta_query'] = [];
|
||||
|
||||
if ( count( $meta_query_stack ) > 1 ) {
|
||||
$query_args['meta_query']['relation'] = 'AND';
|
||||
}
|
||||
|
||||
foreach ( $meta_query_stack as $part ) {
|
||||
$query_args['meta_query'][] = $part;
|
||||
}
|
||||
|
||||
// Order by latest chapter update timestamp?
|
||||
if ( FICTIONEER_ORDER_STORIES_BY_LATEST_CHAPTER && $orderby === 'modified' ) {
|
||||
$query_args['orderby'] = 'meta_value modified';
|
||||
|
Loading…
x
Reference in New Issue
Block a user