Add constant for cache directory path and uri

This commit is contained in:
Tetrakern 2024-08-20 12:44:57 +02:00
parent d91472d36a
commit cf9de78607
7 changed files with 36 additions and 27 deletions

View File

@ -1567,6 +1567,7 @@ define( 'CONSTANT_NAME', value );
| FICTIONEER_DISCORD_EMBED_COLOR | string | Color code for Discord notifications. Default `'9692513'`. | FICTIONEER_DISCORD_EMBED_COLOR | string | Color code for Discord notifications. Default `'9692513'`.
| FICTIONEER_TRUNCATION_ELLIPSIS | string | Appended to truncated strings. Default `…`. | FICTIONEER_TRUNCATION_ELLIPSIS | string | Appended to truncated strings. Default `…`.
| FICTIONEER_AGE_CONFIRMATION_REDIRECT | string | Redirect URL if a visitor reject the age confirmation. Default `https://search.brave.com/`. | FICTIONEER_AGE_CONFIRMATION_REDIRECT | string | Redirect URL if a visitor reject the age confirmation. Default `https://search.brave.com/`.
| FICTIONEER_CACHE_DIR | string | Server path to the theme cache directory.
| FICTIONEER_COMMENTCODE_TTL | integer | How long guests can see their private/unapproved comments in _seconds_. Default `600`. | FICTIONEER_COMMENTCODE_TTL | integer | How long guests can see their private/unapproved comments in _seconds_. Default `600`.
| FICTIONEER_AJAX_TTL | integer | How long to cache certain AJAX requests locally in _milliseconds_. Default `60000`. | FICTIONEER_AJAX_TTL | integer | How long to cache certain AJAX requests locally in _milliseconds_. Default `60000`.
| FICTIONEER_AJAX_LOGIN_TTL | integer | How long to cache AJAX authentications locally in _milliseconds_. Default `15000`. | FICTIONEER_AJAX_LOGIN_TTL | integer | How long to cache AJAX authentications locally in _milliseconds_. Default `15000`.

View File

@ -130,6 +130,16 @@ if ( ! defined( 'FICTIONEER_DEFAULT_CHAPTER_ICON' ) ) {
define( 'FICTIONEER_DEFAULT_CHAPTER_ICON', 'fa-solid fa-book' ); define( 'FICTIONEER_DEFAULT_CHAPTER_ICON', 'fa-solid fa-book' );
} }
// String: Path to cache directory (without trailing slash)
if ( ! defined( 'FICTIONEER_CACHE_DIR' ) ) {
define( 'FICTIONEER_CACHE_DIR', WP_CONTENT_DIR . '/themes/fictioneer/cache' );
}
// String: Path to cache URL (without trailing slash)
if ( ! defined( 'FICTIONEER_CACHE_URL' ) ) {
define( 'FICTIONEER_CACHE_URL', WP_CONTENT_URL . '/themes/fictioneer/cache' );
}
/* /*
* Date Strings * Date Strings
*/ */

View File

@ -27,7 +27,7 @@ function fictioneer_watch_for_customizer_updates() {
fictioneer_clear_all_cached_partials(); fictioneer_clear_all_cached_partials();
// Files // Files
$bundled_fonts = WP_CONTENT_DIR . '/themes/fictioneer/cache/bundled-fonts.css'; $bundled_fonts = FICTIONEER_CACHE_DIR . '/bundled-fonts.css';
if ( file_exists( $bundled_fonts ) ) { if ( file_exists( $bundled_fonts ) ) {
unlink( $bundled_fonts ); unlink( $bundled_fonts );

View File

@ -466,7 +466,7 @@ function fictioneer_get_font_data() {
function fictioneer_build_bundled_fonts() { function fictioneer_build_bundled_fonts() {
// Setup // Setup
$base_fonts = WP_CONTENT_DIR . '/themes/fictioneer/css/fonts-base.css'; $base_fonts = WP_CONTENT_DIR . '/themes/fictioneer/css/fonts-base.css';
$bundled_fonts = WP_CONTENT_DIR . '/themes/fictioneer/cache/bundled-fonts.css'; $bundled_fonts = FICTIONEER_CACHE_DIR . '/bundled-fonts.css';
$fonts = fictioneer_get_font_data(); $fonts = fictioneer_get_font_data();
$disabled_fonts = get_option( 'fictioneer_disabled_fonts', [] ); $disabled_fonts = get_option( 'fictioneer_disabled_fonts', [] );
$disabled_fonts = is_array( $disabled_fonts ) ? $disabled_fonts : []; $disabled_fonts = is_array( $disabled_fonts ) ? $disabled_fonts : [];
@ -477,8 +477,8 @@ function fictioneer_build_bundled_fonts() {
$fonts = apply_filters( 'fictioneer_filter_pre_build_bundled_fonts', $fonts ); $fonts = apply_filters( 'fictioneer_filter_pre_build_bundled_fonts', $fonts );
// Make sure directory exists // Make sure directory exists
if ( ! file_exists( dirname( $bundled_fonts ) ) ) { if ( ! is_dir( FICTIONEER_CACHE_DIR ) ) {
mkdir( dirname( $bundled_fonts ), 0755, true ); mkdir( FICTIONEER_CACHE_DIR, 0755, true );
} }
// Build // Build
@ -621,7 +621,7 @@ function fictioneer_get_theme_color( $mod, $default = null ) {
function fictioneer_build_customize_css( $context = null ) { function fictioneer_build_customize_css( $context = null ) {
// --- Setup ----------------------------------------------------------------- // --- Setup -----------------------------------------------------------------
$file_path = WP_CONTENT_DIR . '/themes/fictioneer/cache/customize.css'; $file_path = FICTIONEER_CACHE_DIR . '/customize.css';
$site_width = (int) get_theme_mod( 'site_width', 960 ); $site_width = (int) get_theme_mod( 'site_width', 960 );
$header_image_style = get_theme_mod( 'header_image_style', 'default' ); $header_image_style = get_theme_mod( 'header_image_style', 'default' );
$header_style = get_theme_mod( 'header_style', 'default' ); $header_style = get_theme_mod( 'header_style', 'default' );
@ -634,12 +634,12 @@ function fictioneer_build_customize_css( $context = null ) {
$css = ''; $css = '';
if ( $context === 'preview' ) { if ( $context === 'preview' ) {
$file_path = WP_CONTENT_DIR . '/themes/fictioneer/cache/customize-preview.css'; $file_path = FICTIONEER_CACHE_DIR . '/customize-preview.css';
} }
// Make sure directory exists // Make sure directory exists
if ( ! file_exists( dirname( $file_path ) ) ) { if ( ! is_dir( FICTIONEER_CACHE_DIR ) ) {
mkdir( dirname( $file_path ), 0755, true ); mkdir( FICTIONEER_CACHE_DIR, 0755, true );
} }
// --- Assets ---------------------------------------------------------------- // --- Assets ----------------------------------------------------------------

View File

@ -884,7 +884,7 @@ function fictioneer_get_cache_salt() {
function fictioneer_create_html_cache_directory( $dir = null ) { function fictioneer_create_html_cache_directory( $dir = null ) {
// Setup // Setup
$default_dir = get_template_directory() . '/cache/html/'; $default_dir = FICTIONEER_CACHE_DIR . '/html/';
$dir = $dir ?? $default_dir; $dir = $dir ?? $default_dir;
$result = true; $result = true;
@ -945,7 +945,7 @@ function fictioneer_get_cached_partial( $slug, $identifier = '', $expiration = n
// Setup // Setup
$args_hash = md5( serialize( $args ) . $identifier . fictioneer_get_cache_salt() ); $args_hash = md5( serialize( $args ) . $identifier . fictioneer_get_cache_salt() );
$static_file = $slug . ( $name ? "-{$name}" : '' ) . "-{$args_hash}.html"; $static_file = $slug . ( $name ? "-{$name}" : '' ) . "-{$args_hash}.html";
$path = get_template_directory() . '/cache/html/' . $static_file; $path = FICTIONEER_CACHE_DIR . '/html/' . $static_file;
// Make sure directory exists and handle failure // Make sure directory exists and handle failure
if ( ! fictioneer_create_html_cache_directory( dirname( $path ) ) ) { if ( ! fictioneer_create_html_cache_directory( dirname( $path ) ) ) {
@ -995,7 +995,7 @@ function fictioneer_clear_all_cached_partials() {
$done = true; $done = true;
// Setup // Setup
$cache_dir = get_template_directory() . '/cache/html/'; $cache_dir = FICTIONEER_CACHE_DIR . '/html/';
// Regenerate cache salt // Regenerate cache salt
fictioneer_generate_cache_salt(); fictioneer_generate_cache_salt();
@ -1053,7 +1053,7 @@ function fictioneer_get_static_content( $more_link_text = \null, $strip_teaser =
// Setup // Setup
$hash = md5( $post->ID . fictioneer_get_cache_salt() ); $hash = md5( $post->ID . fictioneer_get_cache_salt() );
$dir = get_template_directory() . '/cache/html/' . substr( $hash, 0, 2 ); $dir = FICTIONEER_CACHE_DIR . '/html/' . substr( $hash, 0, 2 );
$path = "{$dir}/{$hash}_{$post->ID}.html"; $path = "{$dir}/{$hash}_{$post->ID}.html";
// Make sure directory exists and handle failure // Make sure directory exists and handle failure
@ -1112,7 +1112,7 @@ function fictioneer_the_static_content( $more_link_text = \null, $strip_teaser =
function fictioneer_clear_cached_content( $post_id ) { function fictioneer_clear_cached_content( $post_id ) {
// Setup // Setup
$hash = md5( $post_id . fictioneer_get_cache_salt() ); $hash = md5( $post_id . fictioneer_get_cache_salt() );
$dir = get_template_directory() . '/cache/html/' . substr( $hash, 0, 2 ); $dir = FICTIONEER_CACHE_DIR . '/html/' . substr( $hash, 0, 2 );
$path = "{$dir}/{$hash}_{$post_id}.html"; $path = "{$dir}/{$hash}_{$post_id}.html";
// Delete file // Delete file

View File

@ -284,8 +284,7 @@ function fictioneer_purge_caches_after_update() {
fictioneer_regenerate_cache_bust(); fictioneer_regenerate_cache_bust();
// Delete cached files // Delete cached files
$cache_dir = WP_CONTENT_DIR . '/themes/fictioneer/cache/'; $files = glob( trailingslashit( FICTIONEER_CACHE_DIR ) . '*' );
$files = glob( $cache_dir . '*' );
foreach ( $files as $file ) { foreach ( $files as $file ) {
if ( is_file( $file ) ) { if ( is_file( $file ) ) {
@ -922,7 +921,7 @@ add_action( 'wp_enqueue_scripts', 'fictioneer_style_queue' );
function fictioneer_output_customize_css() { function fictioneer_output_customize_css() {
// Setup // Setup
$file_path = WP_CONTENT_DIR . '/themes/fictioneer/cache/customize.css'; $file_path = FICTIONEER_CACHE_DIR . '/customize.css';
// Create file if it does not exist // Create file if it does not exist
if ( ! file_exists( $file_path ) ) { if ( ! file_exists( $file_path ) ) {
@ -933,7 +932,7 @@ function fictioneer_output_customize_css() {
if ( file_exists( $file_path ) ) { if ( file_exists( $file_path ) ) {
wp_enqueue_style( wp_enqueue_style(
'fictioneer-customize', 'fictioneer-customize',
get_template_directory_uri() . "/cache/customize.css", FICTIONEER_CACHE_URL . "/customize.css",
get_option( 'fictioneer_bundle_stylesheets' ) ? ['fictioneer-complete'] : ['fictioneer-application'], get_option( 'fictioneer_bundle_stylesheets' ) ? ['fictioneer-complete'] : ['fictioneer-application'],
fictioneer_get_cache_bust() fictioneer_get_cache_bust()
); );
@ -952,7 +951,7 @@ if ( ! is_customize_preview() ) {
function fictioneer_output_customize_preview_css() { function fictioneer_output_customize_preview_css() {
// Setup // Setup
$file_path = WP_CONTENT_DIR . '/themes/fictioneer/cache/customize-preview.css'; $file_path = FICTIONEER_CACHE_DIR . '/customize-preview.css';
// Create file if it does not exist // Create file if it does not exist
fictioneer_build_customize_css( 'preview' ); fictioneer_build_customize_css( 'preview' );
@ -961,7 +960,7 @@ function fictioneer_output_customize_preview_css() {
if ( file_exists( $file_path ) ) { if ( file_exists( $file_path ) ) {
wp_enqueue_style( wp_enqueue_style(
'fictioneer-customize', 'fictioneer-customize',
get_template_directory_uri() . "/cache/customize-preview.css", FICTIONEER_CACHE_URL . "/customize-preview.css",
['fictioneer-application'], ['fictioneer-application'],
time() // Prevents caching in preview time() // Prevents caching in preview
); );
@ -1055,7 +1054,7 @@ if ( ! function_exists( 'fictioneer_add_font_awesome' ) ) {
function fictioneer_build_dynamic_scripts() { function fictioneer_build_dynamic_scripts() {
// --- Setup ----------------------------------------------------------------- // --- Setup -----------------------------------------------------------------
$file_path = WP_CONTENT_DIR . '/themes/fictioneer/cache/dynamic-scripts.js'; $file_path = FICTIONEER_CACHE_DIR . '/dynamic-scripts.js';
$last_version = get_transient( 'fictioneer_dynamic_scripts_version' ); $last_version = get_transient( 'fictioneer_dynamic_scripts_version' );
$scripts = ''; $scripts = '';
@ -1065,8 +1064,8 @@ function fictioneer_build_dynamic_scripts() {
} }
// Make sure directory exists // Make sure directory exists
if ( ! file_exists( dirname( $file_path ) ) ) { if ( ! is_dir( FICTIONEER_CACHE_DIR ) ) {
mkdir( dirname( $file_path ), 0755, true ); mkdir( FICTIONEER_CACHE_DIR, 0755, true );
} }
// --- AJAX Settings --------------------------------------------------------- // --- AJAX Settings ---------------------------------------------------------
@ -1126,7 +1125,7 @@ function fictioneer_add_custom_scripts() {
// Dynamic scripts // Dynamic scripts
fictioneer_build_dynamic_scripts(); fictioneer_build_dynamic_scripts();
wp_register_script( 'fictioneer-dynamic-scripts', get_template_directory_uri() . '/cache/dynamic-scripts.js', [], $cache_bust, $strategy ); wp_register_script( 'fictioneer-dynamic-scripts', FICTIONEER_CACHE_URL . '/dynamic-scripts.js', [], $cache_bust, $strategy );
// Register and enqueue single scripts or complete script // Register and enqueue single scripts or complete script
if ( ! get_option( 'fictioneer_bundle_scripts' ) ) { if ( ! get_option( 'fictioneer_bundle_scripts' ) ) {
@ -1522,7 +1521,7 @@ if ( ! function_exists( 'fictioneer_output_head_fonts' ) ) {
fictioneer_output_critical_fonts(); fictioneer_output_critical_fonts();
// Setup // Setup
$bundled_fonts = WP_CONTENT_DIR . '/themes/fictioneer/cache/bundled-fonts.css'; $bundled_fonts = FICTIONEER_CACHE_DIR . '/bundled-fonts.css';
$last_built_timestamp = get_option( 'fictioneer_bundled_fonts_timestamp', '123456789' ); $last_built_timestamp = get_option( 'fictioneer_bundled_fonts_timestamp', '123456789' );
$cache_bust = "?timestamp={$last_built_timestamp}"; $cache_bust = "?timestamp={$last_built_timestamp}";
$loading_pattern = fictioneer_get_async_css_loading_pattern(); $loading_pattern = fictioneer_get_async_css_loading_pattern();
@ -1535,7 +1534,7 @@ if ( ! function_exists( 'fictioneer_output_head_fonts' ) ) {
// Output font stylesheets... // Output font stylesheets...
if ( file_exists( $bundled_fonts ) ) { if ( file_exists( $bundled_fonts ) ) {
// ... base and custom // ... base and custom
$custom_fonts_href = get_template_directory_uri() . '/cache/bundled-fonts.css' . $cache_bust; $custom_fonts_href = FICTIONEER_CACHE_URL . '/bundled-fonts.css' . $cache_bust;
// Start HTML ---> ?> // Start HTML ---> ?>
<link rel="stylesheet" id="fictioneer-bundled-fonts-stylesheet" href="<?php echo $custom_fonts_href; ?>" data-no-optimize="1" data-no-minify="1" <?php echo $loading_pattern; ?>> <link rel="stylesheet" id="fictioneer-bundled-fonts-stylesheet" href="<?php echo $custom_fonts_href; ?>" data-no-optimize="1" data-no-minify="1" <?php echo $loading_pattern; ?>>

View File

@ -470,8 +470,7 @@ function fictioneer_purge_theme_caches() {
fictioneer_delete_transients_like( 'fictioneer_' ); fictioneer_delete_transients_like( 'fictioneer_' );
// Delete cached files // Delete cached files
$cache_dir = WP_CONTENT_DIR . '/themes/fictioneer/cache/'; $files = glob( trailingslashit( FICTIONEER_CACHE_DIR ) . '*' );
$files = glob( $cache_dir . '*' );
foreach ( $files as $file ) { foreach ( $files as $file ) {
if ( is_file( $file ) ) { if ( is_file( $file ) ) {