Releases: Tetrakern/fictioneer
Fictioneer 5.26.0
This update is brought to you by existential dread. Not as comprehensive as the last, but with some important fixes and the long-requested feature to allow co-authors to crosspost chapters. You will need to resave the story post to update the data structure for this this work, though. Note that this feature does not grant edit permission for the actual posts. Unrelated to any of that, you can now allow users to upload custom CSS skins in their profile.
Please consider supporting me on Ko-fi, Patreon, or GitHub Sponsors if you like the theme.
Release Notes
- Fixed: Tooltip modals not working on story pages
- Fixed: Tooltip shortcodes trigger the suspicious content email
- Fixed: Unpublished story assignments showing the wrong status label
- Fixed: Locally hiding taxonomies leave orphaned separator dots behind
- Fixed: Shortcode paginations have the page edit path in their links
- Fixed: Posts list still have a border-radius with the line-style enabled
- Fixed: The header image cannot be cropped
- Fixed: Caching sometimes prevents chapter lists from being updated
- Fixed: The OAuth 2.0 section is not always rendered in the frontend profile
- Improved: Showcase items have a placeholder color again (this time without bleeding)
- New: Added the crosspost role capability that overrides chapter story restrictions
- New: Allowed co-authors to assign and append chapters to stories (but no shared edits)
- New: Added option to allow custom CSS skin uploads for logged-in users
- New: Added customizer options for header background colors in place of an image
- Dev: Added fcnLoggedIn cookie for JS scripts to check whether the user is logged-in
- Dev: … the cookie also holds a unique hash to handle the custom skin application
- Dev: Added count parameter to fictioneer_get_story_blog_posts()
- Dev: The ID of a chapter’s story is now also saved as post parent (for the future)
- Dev: Replaced many meta box and validation queries with faster SQL solutions
- Dev: Split off fictioneer_sanitize_safe_title() for convenience
- Dev: Co-author IDs are now saved as strings to make SQL queries easier
- Dev: Added additional CSS modifier classes to status and rating nodes
- Dev: Added fictioneer_filter_co_authored_ids filter
- Dev: Added fictioneer_filter_profile_fields_support filter
- Dev: Added fictioneer_filter_story_page_cover_html filter
- Dev: Synchronize the story comment count to the comment_count post column (for queries)
Fictioneer 5.25.0
This update is brought to you by sleep deprivation and madness. Honestly, I don’t feel sane after going through this. Thankfully, it’s still mostly plug-and-play for most users, with a little homework required for those who have modded scheduled posts. As always, expect the usual bug fixes, performance improvements, and several new features and options. Please read below to see if you are affected:
Shortcode Aliases: Up until now, there were several aliases for many shortcodes due to legacy support and, frankly, misguided convenience. These have been removed. If your shortcodes suddenly stop working, this is likely the reason. Please refer to the shortcode guide — fixing this should be simple.
Scheduled Chapters: The previous update introduced several new filters, courtesy of @iniznet, which have now been updated or partially replaced. Annoying, but the underlying system has been improved. To simplify things, you can use the new FICTIONEER_LIST_SCHEDULED_CHAPTERS
boolean constant to apply the filters for scheduled chapters all at once. However, you still need to make scheduled chapters accessible, as they typically lead to 404 error pages — which is why this isn’t just a checkbox option.
Word Counts: It was brought to my attention that the site’s word counts were inconsistent with the editor or other sites’ assessments. Counting words is surprisingly tricky. While discrepancies across platforms will always exist, WP and the theme should now show the same counts. You can use the new [Recount Words] action under Fictioneer > Tools to refresh your word counts, as these are static and only updated when a post is saved. Be sure to clear your caches afterwards.
Child Themes: Several partials and templates have been updated or removed. Some legacy support remains (like for the icon menu), but if you’ve modified any partials or templates, especially shortcode ones, it’s a good idea to check for changes. GitHub makes it relatively easy to track changes by checking the last commit dates.
Please consider supporting me on Ko-fi, Patreon, or GitHub Sponsors if you like the theme.
Highlight: Tooltips & Footnotes
This update introduces the [fcnt header="..." content="..."]skeletal shapes[/fcnt]
shortcode to add tooltips in the content. Thanks to @iniznet, these can be turned into footnotes as well by enabled them under Fictioneer > General > Features.
Developer Notes
The customization guide has been extended with an example to add landscape images to the blog post index.
Show notes
- Dev: Switched link style to text-decoration underline with offset
- Dev: Replaced _icon-menu.php partial with fictioneer_render_icon_menu() …
- Dev: … but added fictioneer_legacy_icon_menu_partial() legacy fallback
- Dev: Added fictioneer_filter_icon_menu_items filter
- Dev: Added fictioneer_filter_chapter_group filter
- Dev: Added additional CSS classes and data attributes to chapter group elements
- Dev: Removed obsolete and disabled repair tool actions
- Dev: Fixed translation functions in taxonomy templates
- Dev: Added taxonomy type to render arguments for the _archive-loop partial
- Dev: Added fictioneer_filter_default_search_form_args filter
- Dev: Updated all shortcode partials (_latest-*.php, _showcase.php, etc.)
- Dev: Added fictioneer_filter_splide_breakpoints filter
- Dev: Added fictioneer_filter_splide_loading_style filter
- Dev: Added fictioneer_filter_splide_placeholders filter
- Dev: Added fictioneer_filter_chapters_added_statuses filter
- Dev: Added 'future' to defaults of the fictioneer_filter_append_chapter_to_story_statuses filter
- Dev: Added fictioneer_filter_get_story_data_queried_chapter_statuses filter
- Dev: Added story ID parameter to fictioneer_filter_get_story_data_indexed_chapter_statuses filter
- Dev: Removed fictioneer_filter_chapter_list_statuses filter …
- Dev: … and replaced it with fictioneer_filter_chapter_index_list_statuses
- Dev: Removed fictioneer_get_chapter_list_items() …
- Dev: … and replaced it with fictioneer_get_chapter_index_html()
- Dev: Removed fictioneer_filter_chapter_list_item filter …
- Dev: … and replaced it with fictioneer_filter_chapter_index_item
- Dev: Added fictioneer_filter_chapter_index_html filter
- Dev: Added fictioneer_filter_get_story_data_sql filter
- Dev: Moved preparation of chapter groups into fictioneer_prepare_group_chapters()
- Dev: AJAX comments now preserve/update all URL params
- Dev: Updated fictioneer_delete_transients_like() to use delete_transient() by default
- Dev: Removed Storygraph API transient caching (this needs a better solution)
- Dev: Renamed fictioneer_purge_transients() to fictioneer_purge_transients_after_update()
- Dev: Error messages now differ between actual errors (not translated) and failures (translated)
- Dev: Removed inline storage element and fictioneer_filter_inline_storage filter
- Dev: Added ID data attributes to body tag to replace inline storage element
- Dev: … and added fictioneer_filter_body_attributes filter
- Dev: Removed obsolete FICTIONEER_CHAPTER_LIST_TRANSIENTS constant …
- Dev: … and replaced it with fictioneer_enable_chapter_list_transients()
- Dev: Deprecated obsolete FICTIONEER_ENABLE_MENU_TRANSIENTS constant …
- Dev: … and replaced it with fictioneer_enable_menu_transients()
- Dev: Extended fictioneer_post_{*} action hooks with $args parameter (nested, context)
- Dev: … and apply them to the _post.php partial as well (removed special blog hooks)
- Dev: Added fictioneer_post_article_open action hook
- Dev: Added fictioneer_filter_post_header_items filter
- Dev: Added FICTIONEER_LIST_SCHEDULED_CHAPTERS constant for convenience
- Dev: Removed fictioneer_mobile_chapters_frame() action (mobile menu frame)
- Dev: Removed fictioneer_chapter_index_popup_menu() …
- Dev: … and added fictioneer_chapter_index_modal_toggle()
Release Notes
- ATTENTION: REMOVED SHORTCODE ALIASES (if they stop working, this is why)
- Fixed: Card grids no longer vanish in Elementor below 768px viewports
- Fixed: List shortcodes no longer append empty space in Elementor below 768px viewports
- Fixed: The Splide slider no longer throws errors if a shortcode does not return results
- Fixed: The front page SEO description now defaults to the blog description as intended
- Fixed: Images on vertical cards should now cover all space in Safari
- Fixed: Excluded Font Awesome integration from several optimization plugins that can break it
- Fixed: The dynamic Splide slider detection for shortcodes now also works on single quotes
- Fixed: The output of log files in the admin is now escaped in case of HTML contents
- Fixed: The search link in the mobile menu will no longer vanish if logged-out
- Fixed: The Splide slider detection for shortcodes should now always work
- Fixed: Password-bypass permission now also allows to comment
- Fixed: The query cache feature did more harm than good and has been removed
- Fixed: The fullscreen chapter view has once again page padding
- Fixed: Clicking into the dialog modal scrollbar does no longer close the modal
- Changed: Removed WhatsApp and Telegram share buttons
- Improved: Hardened the integrated icon sprite sheet against overzealous CDN plugins
- Improved: The Latest Updates shortcode and Stories template are now more accurate
- Improved: Scheduled chapters are now auto-appended to stories (if enabled)
- Improved: Added dynamic placeholder styles for Splide sliders to avoid layout shifts
- Improved: Massively boosted performance for the story data query (up to 15 times faster)
- Improved: The word count function should now better match the post editor
- Improved: Communication with external object caches should be better now
- Improved: Split off some setting options into the "Caching" group for more order
- Improved: Added password expiration date to password note in chapter list table
- Improved: Added story column with filter in the chapter list table
- Improved: Refactored the chapter index menu into a modal …
- Improved: … and added toggle to change the list order
- New: Added general option to fix chapter paragraphs when rendered
- New: Added tool action to fix missing post line breaks in the database
- New: Added [fcnt] shortcode to include tooltip modals…
- New: … plus optional feature to append tooltips as footnotes (@iniznet)
- New: Added general option to show the modified date on story pages
- New: Added quality parameter to [fictioneer_showcase] to allow larger images
- New: Added tool action to recalculate all word counts (Fictioneer > Tools)
- New: Added setting option to disable chapter list Transient caching
- New: Added setting option to disable shortcode Transient caching
- New: Added local site setting to hide taxonomies
- New: Added Bluesky share button (can be disabled in the theme settings)
- New: Added Spanish (Chile) translation (@FxxMorgan)
Fictioneer 5.24.4
Maintenance update with an extension of developer options (thanks @iniznet). Additionally, a bug that forced all chapter list links into the ?={id}
structure has been fixed. While that did not break anything, it was not ideal for search engines. Also, the site logo now has minimum and maximum height settings to improve scaling between desktop and mobile viewports.
Please consider supporting me on Ko-fi, Patreon, or GitHub Sponsors if you like the theme.
Release Notes
- Fixed: Permalinks in chapter lists respect the permalink structure again instead of using the ID
- Fixed: Self-deleting an account now also removes it from a multisite network (if any)
- Improved: Self-deleting an account will now reassign all remaining posts to a dummy user
- Improved: Removed useless backup meta fields for deleted comments
- New: Split logo height customizer setting into minimum and maximum
- Dev: Added fictioneer_filter_allowed_chapter_permalinks filter (@iniznet)
- Dev: Added fictioneer_filter_append_chapter_to_story_statuses filter (@iniznet)
- Dev: Added fictioneer_filter_get_story_data_indexed_chapter_statuses filter (@iniznet)
- Dev: Added fictioneer_filter_chapter_nav_buttons_allowed_statuses filter (@iniznet)
- Dev: Added fictioneer_filter_chapter_subscribe_button_statuses filter (@iniznet)
- Dev: Added fictioneer_filter_chapter_index_popup_menu_statuses filter (@iniznet)
- Dev: Added fictioneer_filter_chapter_media_buttons_statuses filter (@iniznet)
- Dev: Added fictioneer_filter_chapter_list_statuses filter (@iniznet)
- Dev: Added fictioneer_filter_verify_unpublish_access filter (@iniznet)
- Dev: Refactored fictioneer_delete_my_account() for efficiency and multisites
- Dev: Multiple chapter order/view toggles can no longer cancel each other out
Fictioneer 5.24.3 (Hotfix)
So apparently, the fix for the display bug in Chromium browsers did not work. So here you have another one that should work, at least as far as the people that suffered the issue reported. This is not an essential update, but if you notice the unfold button in chapter lists disappear sometimes, this is the solution. It is a really weird bug in the browser's render engine.
Release Notes
- Fixed: Chromium browsers should now always render the unfolding button in chapter lists
Fictioneer 5.24.2 (Hotfix)
Alright, fine, I messed up and here is a hotfix! But also some additional small improvement, so all is good, yes?
Release Notes
- Fixed: The custom [Edit Date] capability does no longer break posts if missing
- Improved: Further improved compatibility with Jetpack
- Improved: The horizontal padding of tag pills now adapts to the set border-radius
Fictioneer 5.24.1
Is this still a patch-level update? Alas, this one focuses heavily on performance and database optimization, removing unnecessary meta fields and making others obsolete. Depending on the amount of content, this could remove thousands of rows from your database. Additionally, the Discord hooks should now function properly again, new bulk edit fields will make managing large numbers of chapters easier, and sites with certain pre-installed plugins should no longer break (as they are now force-disabled).
If you’ve already installed a beta version of this update or if user-deleted comments are suddenly displaying incorrectly, run the database optimization action under Fictioneer > Tools (but be sure to make a database backup first). User-deleted comments are now stored as their own type instead of relying on a comment meta field. For those updating normally, the comments will be migrated automatically.
Please consider supporting me on Ko-fi, Patreon, or GitHub Sponsors if you like the theme.
Release Notes
- Fixed: Discord notifications about new chapters now reliably include the story again
- Fixed: Discord notifications about new private comments work again for guests
- Fixed: Hiding covers in the site settings modal now also targets list-type shortcodes
- Fixed: Chromium browsers sometimes did not render the chapter list unfolding button
- Fixed: Leading and trailing whitespaces no longer prevent BBCodes from working
- Fixed: Added missing hook on the index.php (sidebar will now be displayed again)
- Fixed: Circumvented CSS grid display bug in Safari (-.-)
- Fixed: Removed several style issues and inconsistencies
- Fixed: Jetpack comments should now work with the theme comments query
- Fixed: Jetpack comments should now respect the set comment page order
- Improved: Removed obsolete meta fields from the post meta database table
- Improved: The default chapter icon is no longer saved but rendered if the icon is missing
- Improved: Made Discord comment notifications fields more translatable
- Improved: The database optimization action now also removes orphaned post meta
- Improved: Added Transient caching to the taxonomy submenu
- Improved: Jetpack is now blocked from optimizing and breaking theme scripts
- Improved: The Page Optimizer plugin is automatically disabled due to compatibility issues
- Changed: Age ratings on chapter cards and in shortcodes now default to the story
- New: Added additional bulk edit fields for chapters (icon, text icon, prefix, and group)
- New: Added option to log all post updates (previously the default)
- New: Added option to disable the Transient caching for navigation menus
- New: Added only_protected shortcode parameter to query only posts with password
- Dev: Refactored the Discord message trigger memory handling and cleanup
- Dev: Refactored and extended validation of user permissions before save_post actions
- Dev: Default chapter icons are no longer stored in the database
- Dev: Hooked fictioneer_post_chapter_to_discord() action back to save_post to fix missing story ID
- Dev: Removed fictioneer_store_original_publish_date() and related post meta
- Dev: Obscured the log file name with a random hash
- Dev: Updated Sortable JS to 1.15.3
- Dev: Updated theme.json to v3
- Dev: Added FICTIONEER_DEFAULT_SITE_WIDTH constant (960)
- Dev: Use has_password query argument instead of fictioneer_exclude_protected_posts()
- Dev: Added additional CSS classes to the image header
- Dev: Replaced fictioneer_visibility_code comment meta with hash from comment date
- Dev: Replaced fictioneer_deleted_by_user comment meta with user_deleted comment type
Fictioneer 5.24.0
I once swore I would never add a slider. Anyway, here you have sliders and some more things. Special thanks goes to @c-cesar, who provided a translation into Brazilian Portuguese.
Version 5.22.1 introduced the anti-flicker script, which was enabled by default but could be turned off. I have since reconsidered and decided to make it opt-in instead, because it can cause undesirable behavior. If you want to turn it back on, you can find it under Fictioneer > Compatibility as before.
Please consider supporting me on Ko-fi, Patreon, or GitHub Sponsors if you like the theme.
Highlight: Sliders
Any shortcode with the new "splide" parameter can be turned into a slider. Splide is a flexible and lightweight slider that comes with many options for customization, although applying them may be challenging if you are not familiar with JSONs. You can see live examples on the demo shortcode overview page.
Highlight: Extended Showcase Shortcode
The original showcase shortcode was built for collections and thus always lagged behind the rest. This has been amended and you can now change the item size easily with the new "height", "min_width", and "aspect_ratio" parameters. Finally you can have that story grid to judge a book by its cover! Remember, not the story with the best plot and writing is deserving of attention, only the one with the most dazzling cover art! I’m being sarcastic, in case that was not clear.
Release Notes
- Fixed: Header images with shadow that are not inset do no longer have side margins
- Fixed: Missing https in your site address will no longer break scripts (but go fix this!)
- Fixed: The moderation meta box is displayed again on the comment edit screen
- Fixed: The token track for excluded authors in the advanced search form works again
- Fixed: Overly long tokens in the search form will no longer break the layout
- Fixed: Non-published chapters are no longer appended to stories or affect update dates
- Fixed: Unlisted chapters will no longer appear in the chapter index popup menu
- Fixed: Unlisted chapters will no longer display the chapter navigation buttons
- Fixed: The [fictioneer_showcase] shortcode will now also use the default cover
- Changed: Scroll direction detection thresholds are now 50px up and 10px down
- Changed: The anti-flicker script is no longer enabled by default (reset)
- Improved: Updated and extended helper modals on the general settings page
- Improved: The reading progress calculation now takes the full window height into account
- Improved: Use scrim gradient for showcase caption backgrounds
- New: Added Brazilian Portuguese translation (provided by @c-cesar)
- New: Added shortcode parameter "expanded" (false/true) parameter to [fictioneer_search]
- New: Added Author Index and Author Index Advanced page templates
- New: Fictioneer > Logs now also displays the WP debug log (if any)
- New: Added "splide" parameter to many shortcodes to turn them into sliders
- New: Added "height", "min_width", and "aspect_ratio" parameters to [fictioneer_showcase] shortcode
- New: Added "cache" parameter to most shortcodes, allowing to turn off the Transient caching
- Dev: Replaced FICTIONEER_CACHE_URL with fictioneer_get_theme_cache_uri()
- Dev: Replaced FICTIONEER_CACHE_DIR with fictioneer_get_theme_cache_dir()
- Dev: Added fictioneer_filter_word_count filter
- Dev: Added fictioneer_filter_story_word_count filter
- Dev: The content node of Storypath API responses now has content filters applied
- Dev: Replaced strtoupper() with mb_strtoupper() where necessary
- Dev: Replaced strlen() with mb_strlen() where necessary
- Dev: Added Transient caching strategy to index page templates
- Dev: The Fictioneer log now always uses UTC dates
- Dev: Added fictioneer_main_end action hook
Fictioneer 5.23.0
This update went off the rails. It was supposed to only refactor some legacy code, fix bugs, and improve performance. Then I made the mistake of checking how difficult it would be to add list-type shortcodes, and here we are. On the bright side, you can now customize shortcodes to a much higher degree without needing to use PHP filters.
Please consider supporting me on Ko-fi, Patreon, or GitHub Sponsors if you like the theme.
Highlight: List-type Shortcodes
For those who prefer lists over cards, you can now switch to a list layout using the type="list"
parameter for the Latest Chapters, Latest Stories, and Latest Updates shortcodes. The lists are also affected by settings and parameters for seamless display, aspect ratio, content list style, and many new options introduced in this update. See documentation.
Release Notes
- Fixed: Smooth scrolling to anchors will now also work on numerical IDs
- Fixed: Paragraph tools do no longer trigger on links, buttons, inputs, and textareas
- Fixed: Cleaned up inconsistencies and missing customizations with border-radii
- Fixed: Word counts now account for non-Latin scripts (recalculated only on save, sorry)
- Fixed: Autoptimize works again for logged-in users
- Fixed: The content gate will no longer throw a warning if there is no post to gate
- Improved: Refined content and chapter list base font size and grow
- Improved: Added additional helper modals to selected options
- Changed: Increased default gap between chapter titles and meta row from 3px to 4px
- Changed: Renamed customizer setting "Chapter List Gap" to "Content List Gap" (reset)
- Changed: Small cards now show a maximum of 10 taxonomies (override with max_terms)
- New: Added customizer setting "Nested Border Radius Multiplier"
- New: Added customizer setting "Default Story Cover"
- New: Added shortcode parameters: footer, footer_words, footer_date, footer_comments, footer_status, footer_rating, footer_chapters, footer_author, date_format, nested_date_format, terms, max_terms (where it makes sense)
- New: Added "list" type to to Latest Chapters/Stories/Updates shortcodes
- New: Added warning box about potential issues to the theme settings page
- Dev: Renamed fictioneer_output_small_card_thumbnail() to fictioneer_render_thumbnail()
- Dev: Added optional $echo parameter to fictioneer_render_thumbnail()
- Dev: sanitize_css_aspect_ratio() does now work with fractional aspect ratios
- Dev: Added FICTIONEER_CACHE_DIR constant
- Dev: Added FICTIONEER_CACHE_URL constant
- Dev: Reduced redundancy in age rating translations
- Dev: fictioneer_purge_transients() will now always purge all shortcode Transients
- Dev: Refactored fictioneer_generate_card_tags() into fictioneer_get_term_nodes()
- Dev: Refactored how taxonomies are queried and rendered on cards
- Dev: Added fictioneer_get_bullet_separator() helper
- Dev: Added fictioneer_filter_bullet_separator filter
- Dev: Added fictioneer_filter_shortcode_{type}_terms filter
- Dev: Added fictioneer_filter_shortcode_{type}_list_meta filter
- Dev: Added fictioneer_filter_card_{type}_terms filter
Fictioneer 5.22.4 (Hotfix)
Fixed a critical bug in a truncate function that can break any non-latin language and spit out garbled text.
Release Notes
- Fixed: The fictioneer_truncate() function does no longer break multibyte languages
Fictioneer 5.22.3
Hopefully, this update will address the last remaining issues from version 5.22 and give me a break! Along with important fixes, this update introduces a new query result cache system for large and resource-intensive chapter queries (50+ posts). Tests have shown a 10-15 times increase in speed, which is especially noticeable on list pages. You can enable this feature under Fictioneer > General > Features. It should also work seamlessly with cache plugins.
Please consider supporting me on Ko-fi, Patreon, or GitHub Sponsors if you like the theme.
Release Notes
- Fixed: The ignore_protected shortcode parameter now also works on Latest Update chapters
- Fixed: AJAX comments are now loaded again on bypassed protected posts
- Fixed: The story card cache does now properly respect the cache limit
- Fixed: Story pages will no longer overflow on the top if the thumbnail is missing or hidden
- Fixed: The publish_posts capability is no longer the sole qualifier for having an author page
- Improved: Changing the story of a chapter will now remove the chapter from the old story
- Improved: The comment count on stories and story cards should now be more up-to-date
- Improved: Added display of active known cache plugins to settings page
- New: Added optional caching feature for large query results to speed up loading
- New: Added compatibility setting to allow REST requests to trigger save actions
- Dev: Added FICTIONEER_STORY_CARD_CHAPTER_LIMIT constant
- Dev: Added FICTIONEER_QUERY_RESULT_CACHE_THRESHOLD constant
- Dev: Added FICTIONEER_QUERY_RESULT_CACHE_LIMIT constant
- Dev: Reduced FICTIONEER_CARD_CACHE_LIMIT default from 50 to 40
- Dev: Increased FICTIONEER_QUERY_ID_ARRAY_LIMIT default from 100 to 1000
- Dev: Optimized fictioneer_get_stories_total_word_count() for better performance
- Dev: Refactored fictioneer_get_story_chapter_posts() and added $args and $full parameters
- Dev: fictioneer_get_story_chapter_posts() now returns reduced WP_Post objects
- Dev: Fixed the Transient key for the blog shortcode