Add option to hide a story in lists
This commit is contained in:
parent
c1959ceceb
commit
e9f8695ff6
@ -232,7 +232,7 @@ Fictioneer customizes WordPress by using as many standard action hooks as possib
|
||||
| `login_form` | `fictioneer_after_logout_cleanup`
|
||||
| `manage_comments_custom_column` | `fictioneer_add_comments_report_column_content`
|
||||
| `personal_options_update` | `fictioneer_update_admin_user_profile`, `fictioneer_update_my_user_profile`
|
||||
| `pre_get_posts` | `fictioneer_extend_search_query`, `fictioneer_extend_taxonomy_pages`, `fictioneer_limit_authors_to_own_posts_and_pages`, `fictioneer_remove_unlisted_chapter_from_search`
|
||||
| `pre_get_posts` | `fictioneer_extend_search_query`, `fictioneer_extend_taxonomy_pages`, `fictioneer_limit_authors_to_own_posts_and_pages`, `fictioneer_remove_unlisted_from_search`
|
||||
| `preprocess_comment` | `fictioneer_preprocess_comment`
|
||||
| `save_post` | `fictioneer_create_sitemap`, `fictioneer_refresh_chapters_schema`, `fictioneer_refresh_chapter_schema`, `fictioneer_refresh_collections_schema`, `fictioneer_refresh_post_caches`, `fictioneer_refresh_post_schema`, `fictioneer_refresh_recommendations_schema`, `fictioneer_refresh_recommendation_schema`, `fictioneer_refresh_stories_schema`, `fictioneer_refresh_story_schema`, `fictioneer_save_seo_metabox`, `fictioneer_save_word_count`, `fictioneer_track_chapter_and_story_updates`, `fictioneer_update_modified_date_on_story_for_chapter`, `fictioneer_update_shortcode_relationships`
|
||||
| `show_user_profile` | `fictioneer_custom_profile_fields`
|
||||
|
@ -129,16 +129,16 @@
|
||||
"class": "",
|
||||
"id": ""
|
||||
},
|
||||
"message": "Sticky in all lists",
|
||||
"message": "Sticky in lists",
|
||||
"default_value": 0,
|
||||
"ui": 0,
|
||||
"ui_on_text": "",
|
||||
"ui_off_text": ""
|
||||
},
|
||||
{
|
||||
"key": "field_60ecb1ba18b2b",
|
||||
"key": "field_6456dc4618338",
|
||||
"label": "",
|
||||
"name": "fictioneer_story_no_epub",
|
||||
"name": "fictioneer_story_hidden",
|
||||
"aria-label": "",
|
||||
"type": "true_false",
|
||||
"instructions": "",
|
||||
@ -149,7 +149,7 @@
|
||||
"class": "",
|
||||
"id": ""
|
||||
},
|
||||
"message": "Disable ePUB download",
|
||||
"message": "Hide story in lists",
|
||||
"default_value": 0,
|
||||
"ui": 0,
|
||||
"ui_on_text": "",
|
||||
@ -255,6 +255,26 @@
|
||||
"ui_on_text": "",
|
||||
"ui_off_text": ""
|
||||
},
|
||||
{
|
||||
"key": "field_60ecb1ba18b2b",
|
||||
"label": "",
|
||||
"name": "fictioneer_story_no_epub",
|
||||
"aria-label": "",
|
||||
"type": "true_false",
|
||||
"instructions": "",
|
||||
"required": 0,
|
||||
"conditional_logic": 0,
|
||||
"wrapper": {
|
||||
"width": "",
|
||||
"class": "",
|
||||
"id": ""
|
||||
},
|
||||
"message": "Disable ePUB download",
|
||||
"default_value": 0,
|
||||
"ui": 0,
|
||||
"ui_on_text": "",
|
||||
"ui_off_text": ""
|
||||
},
|
||||
{
|
||||
"key": "field_636d81d34cab1",
|
||||
"label": "Custom Story CSS",
|
||||
@ -294,5 +314,5 @@
|
||||
"active": true,
|
||||
"description": "",
|
||||
"show_in_rest": 0,
|
||||
"modified": 1676250543
|
||||
"modified": 1683414548
|
||||
}
|
@ -164,34 +164,47 @@ if ( ! function_exists( 'fcn_keyword_search_authors_input' ) ) {
|
||||
// =============================================================================
|
||||
|
||||
/**
|
||||
* Remove unlisted chapters from search results
|
||||
* Remove unlisted chapters and stories from search results
|
||||
*
|
||||
* @since 5.0
|
||||
* @since 5.2.4
|
||||
*
|
||||
* @param WP_Query $query The query.
|
||||
*/
|
||||
|
||||
function fictioneer_remove_unlisted_chapter_from_search( $query ) {
|
||||
function fictioneer_remove_unlisted_from_search( $query ) {
|
||||
// Only for search queries on the frontend...
|
||||
if ( ! is_admin() && $query->is_main_query() && $query->is_search ) {
|
||||
$query->set(
|
||||
'meta_query',
|
||||
array(
|
||||
'relation' => 'AND',
|
||||
array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_chapter_hidden',
|
||||
'compare' => 'NOT EXISTS',
|
||||
'compare' => 'NOT EXISTS'
|
||||
),
|
||||
array(
|
||||
'key' => 'fictioneer_chapter_hidden',
|
||||
'value' => '0',
|
||||
'compare' => '=',
|
||||
'value' => '0'
|
||||
)
|
||||
),
|
||||
array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'compare' => 'NOT EXISTS'
|
||||
),
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'value' => '0'
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
add_action( 'pre_get_posts' ,'fictioneer_remove_unlisted_chapter_from_search', 10 );
|
||||
add_action( 'pre_get_posts' ,'fictioneer_remove_unlisted_from_search', 10 );
|
||||
|
||||
/**
|
||||
* Extend search query with custom input
|
||||
|
@ -105,7 +105,6 @@ if ( ! function_exists( 'fictioneer_create_sitemap' ) ) {
|
||||
foreach( $pages as $post ) {
|
||||
$template = get_page_template_slug( $post->ID );
|
||||
if ( in_array( $template, ['user-profile.php', 'single-bookmarks.php'] ) ) continue;
|
||||
$type = get_post_type( $post );
|
||||
$frequency = 'yearly';
|
||||
$lastmod = get_the_modified_date( 'c', $post->ID );
|
||||
$sitemap .= fictioneer_url_node( get_permalink( $post->ID ), $lastmod, 'yearly' );
|
||||
@ -153,13 +152,26 @@ if ( ! function_exists( 'fictioneer_create_sitemap' ) ) {
|
||||
$stories = $last_saved_type == 'fcn_story' ? false : get_transient( 'fictioneer_sitemap_stories' );
|
||||
|
||||
if ( ! $stories ) {
|
||||
$stories = get_posts( array(
|
||||
$stories = get_posts(
|
||||
array(
|
||||
'post_type' => 'fcn_story',
|
||||
'post_status' => array( 'publish' ),
|
||||
'orderby' => 'date',
|
||||
'order' => 'DESC',
|
||||
'numberposts' => '2000'
|
||||
));
|
||||
'numberposts' => '2000',
|
||||
array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'compare' => 'NOT EXISTS'
|
||||
),
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'value' => '0'
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
set_transient( 'fictioneer_sitemap_stories', $stories );
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,17 @@ $query_args = array(
|
||||
'orderby' => 'meta_value ' . $args['orderby'],
|
||||
'order' => $args['order'] ?? 'desc',
|
||||
'posts_per_page' => $args['count'],
|
||||
'meta_query' => array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'value' => '0'
|
||||
),
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'compare' => 'NOT EXISTS'
|
||||
),
|
||||
),
|
||||
'no_found_rows' => true
|
||||
);
|
||||
|
||||
|
@ -32,6 +32,17 @@ $query_args = array(
|
||||
'orderby' => 'meta_value ' . $args['orderby'],
|
||||
'order' => $args['order'] ?? 'desc',
|
||||
'posts_per_page' => $args['count'],
|
||||
'meta_query' => array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'value' => '0'
|
||||
),
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'compare' => 'NOT EXISTS'
|
||||
),
|
||||
),
|
||||
'no_found_rows' => true
|
||||
);
|
||||
|
||||
|
@ -38,6 +38,17 @@ $query_args = array(
|
||||
'orderby' => 'meta_value',
|
||||
'order' => $args['order'] ?? 'desc',
|
||||
'posts_per_page' => $args['count'] + 4, // Little buffer in case of no viable chapters
|
||||
'meta_query' => array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'value' => '0'
|
||||
),
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'compare' => 'NOT EXISTS'
|
||||
),
|
||||
),
|
||||
'no_found_rows' => true,
|
||||
'update_post_term_cache' => false
|
||||
);
|
||||
|
@ -40,6 +40,17 @@ $query_args = array(
|
||||
'orderby' => 'meta_value',
|
||||
'order' => $args['order'] ?? 'desc',
|
||||
'posts_per_page' => $args['count'] + 4, // Little buffer in case of no viable chapters
|
||||
'meta_query' => array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'value' => '0'
|
||||
),
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'compare' => 'NOT EXISTS'
|
||||
),
|
||||
),
|
||||
'no_found_rows' => true
|
||||
);
|
||||
|
||||
|
13
stories.php
13
stories.php
@ -27,7 +27,18 @@
|
||||
'orderby' => 'meta_value modified',
|
||||
'order' => 'DESC',
|
||||
'paged' => $page,
|
||||
'posts_per_page' => get_option( 'posts_per_page', 8 )
|
||||
'posts_per_page' => get_option( 'posts_per_page', 8 ),
|
||||
'meta_query' => array(
|
||||
'relation' => 'OR',
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'value' => '0'
|
||||
),
|
||||
array(
|
||||
'key' => 'fictioneer_story_hidden',
|
||||
'compare' => 'NOT EXISTS'
|
||||
),
|
||||
)
|
||||
);
|
||||
|
||||
// Filter query arguments
|
||||
|
Loading…
x
Reference in New Issue
Block a user