RuntimeException (404)
Preset 'boutique_graines' not found RuntimeException thrown with message "Preset 'boutique_graines' not found" Stacktrace: #22 RuntimeException in /home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Layout/Layout.php:123 #21 Gantry\Component\Layout\Layout:preset in /home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Layout/Layout.php:1137 #20 Gantry\Component\Layout\Layout:loadIndex in /home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Layout/Layout.php:1069 #19 Gantry\Component\Layout\Layout:load in /home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Layout/Layout.php:140 #18 Gantry\Component\Layout\Layout:instance in /home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:359 #17 Gantry\Framework\Theme:loadLayout in /home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:462 #16 Gantry\Framework\Theme:segments in /home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:483 #15 Gantry\Framework\Theme:prepare in /home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Framework/Theme.php:99 #14 Gantry\Framework\Theme:prepare_particles in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php:324 #13 WP_Hook:apply_filters in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php:348 #12 WP_Hook:do_action in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/plugin.php:517 #11 do_action in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/script-loader.php:2299 #10 wp_enqueue_scripts in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php:324 #9 WP_Hook:apply_filters in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php:348 #8 WP_Hook:do_action in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/plugin.php:517 #7 do_action in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/general-template.php:3192 #6 wp_head in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/template-canvas.php:17 #5 include in /home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/woocommerce/src/Internal/ComingSoon/ComingSoonRequestHandler.php:108 #4 Automattic\WooCommerce\Internal\ComingSoon\ComingSoonRequestHandler:handle_template_include in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php:324 #3 WP_Hook:apply_filters in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/plugin.php:205 #2 apply_filters in /home/d6d8d5ygg69rt2rg/public_html/wp-includes/template-loader.php:104 #1 require_once in /home/d6d8d5ygg69rt2rg/public_html/wp-blog-header.php:19 #0 require in /home/d6d8d5ygg69rt2rg/public_html/index.php:17
Stack frames (23)
22
RuntimeException
/src/classes/Gantry/Component/Layout/Layout.php123
21
Gantry\Component\Layout\Layout preset
/src/classes/Gantry/Component/Layout/Layout.php1137
20
Gantry\Component\Layout\Layout loadIndex
/src/classes/Gantry/Component/Layout/Layout.php1069
19
Gantry\Component\Layout\Layout load
/src/classes/Gantry/Component/Layout/Layout.php140
18
Gantry\Component\Layout\Layout instance
/src/classes/Gantry/Component/Theme/ThemeTrait.php359
17
Gantry\Framework\Theme loadLayout
/src/classes/Gantry/Component/Theme/ThemeTrait.php462
16
Gantry\Framework\Theme segments
/src/classes/Gantry/Component/Theme/ThemeTrait.php483
15
Gantry\Framework\Theme prepare
/src/classes/Gantry/Framework/Theme.php99
14
Gantry\Framework\Theme prepare_particles
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php324
13
WP_Hook apply_filters
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php348
12
WP_Hook do_action
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/plugin.php517
11
do_action
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/script-loader.php2299
10
wp_enqueue_scripts
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php324
9
WP_Hook apply_filters
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php348
8
WP_Hook do_action
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/plugin.php517
7
do_action
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/general-template.php3192
6
wp_head
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/template-canvas.php17
5
include
/home/d6d8d5ygg69rt2rg/public_html/wp-content/plugins/woocommerce/src/Internal/ComingSoon/ComingSoonRequestHandler.php108
4
Automattic\WooCommerce\Internal\ComingSoon\ComingSoonRequestHandler handle_template_include
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/class-wp-hook.php324
3
WP_Hook apply_filters
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/plugin.php205
2
apply_filters
/home/d6d8d5ygg69rt2rg/public_html/wp-includes/template-loader.php104
1
require_once
/home/d6d8d5ygg69rt2rg/public_html/wp-blog-header.php19
0
require
/home/d6d8d5ygg69rt2rg/public_html/index.php17
        }
 
        return $results;
    }
 
    /**
     * @param string $name
     * @return array
     * @throws \RuntimeException
     */
    public static function preset($name)
    {
        $gantry = Gantry::instance();
 
        /** @var UniformResourceLocator $locator */
        $locator = $gantry['locator'];
        $filename = $locator->findResource("gantry-layouts://{$name}.yaml");
 
        if (!$filename) {
            throw new \RuntimeException(sprintf("Preset '%s' not found", $name), 404);
        }
 
        $layout = LayoutReader::read($filename);
        $layout['preset']['name'] = $name;
        $layout['preset']['timestamp'] = filemtime($filename);
 
        return $layout;
    }
 
    /**
     * @param  string $name
     * @return Layout
     */
    public static function instance($name)
    {
        if (!isset(static::$instances[$name])) {
            static::$instances[$name] = static::load($name);
        }
 
        return static::$instances[$name];
        /** @var UniformResourceLocator $locator */
        $locator = $gantry['locator'];
 
        $index = static::loadIndexFile($name);
 
        // Find out the currently used layout file.
        $layoutFile = $locator("gantry-config://{$name}/layout.yaml");
        if (!$layoutFile) {
            /** @var Outlines $outlines */
            $outlines = $gantry['outlines'];
 
            $preset = isset($index['preset']['name']) ? $index['preset']['name'] : $outlines->preset($name);
        }
 
        // Get timestamp for the layout file.
        $timestamp = $layoutFile ? filemtime($layoutFile) : 0;
 
        // If layout index file doesn't exist or is not up to date, rebuild it.
        if (empty($index['timestamp']) || $index['timestamp'] !== $timestamp || !isset($index['version']) || $index['version'] !== static::VERSION) {
            $layout = isset($preset) ? new static($name, static::preset($preset)) : static::instance($name);
            $layout->timestamp = $timestamp;
 
            if ($autoSave) {
                if (!$layout->timestamp) {
                    $layout->save();
                }
                $index = $layout->buildIndex();
                $layout->saveIndex($index);
            } else {
                $index = $layout->buildIndex();
            }
        }
 
        $index += [
            'name' => $name,
            'timestamp' => $timestamp,
            'preset' => [
                'name' => '',
                'image' => 'gantry-admin://images/layouts/default.png'
            ],
    public static function load($name, $preset = null)
    {
        if (!$name) {
            throw new \BadMethodCallException('Layout needs to have a name');
        }
 
        $gantry = Gantry::instance();
 
        /** @var UniformResourceLocator $locator */
        $locator = $gantry['locator'];
 
        $layout = null;
        $filename = $locator("gantry-config://{$name}/layout.yaml");
 
        // If layout file doesn't exists, figure out what preset was used.
        if (!$filename) {
            // Attempt to load the index file.
            $indexFile = $locator("gantry-config://{$name}/index.yaml");
            if ($indexFile || !$preset) {
                $index = static::loadIndex($name, true);
                $preset = $index['preset']['name'];
            }
 
            try {
                $layout = static::preset($preset);
            } catch (\Exception $e) {
                // Layout doesn't exist, do nothing.
            }
        } else {
            $layout = LayoutReader::read($filename);
        }
 
        return new static($name, $layout);
    }
 
    /**
     * @param string $name
     * @return array
     */
    protected static function loadIndexFile($name)
 
        if (!$filename) {
            throw new \RuntimeException(sprintf("Preset '%s' not found", $name), 404);
        }
 
        $layout = LayoutReader::read($filename);
        $layout['preset']['name'] = $name;
        $layout['preset']['timestamp'] = filemtime($filename);
 
        return $layout;
    }
 
    /**
     * @param  string $name
     * @return Layout
     */
    public static function instance($name)
    {
        if (!isset(static::$instances[$name])) {
            static::$instances[$name] = static::load($name);
        }
 
        return static::$instances[$name];
    }
 
    /**
     * @param  string $name
     * @return Layout
     */
    public static function index($name)
    {
        if (!isset(static::$indexes[$name])) {
            static::$indexes[$name] = static::loadIndex($name, true);
        }
 
        return static::$indexes[$name];
    }
 
    /**
     * @param string $name
 
    /**
     * Load current layout and its configuration.
     *
     * @param string $name
     * @return Layout
     * @throws \LogicException
     */
    public function loadLayout($name = null)
    {
        if (!$name) {
            try {
                $name = static::gantry()['configuration'];
            } catch (\Exception $e) {
                throw new \LogicException('Gantry: Outline has not been defined yet', 500);
            }
        }
 
        if (!isset($this->layoutObject) || $this->layoutObject->name !== $name) {
            $layout = Layout::instance($name);
 
            if (!$layout->exists()) {
                $layout = Layout::instance('default');
            }
 
            // TODO: Optimize
            $this->layoutObject = $layout->init();
        }
 
        return $this->layoutObject;
    }
 
    /**
     * Check whether layout has content bock.
     *
     * @return bool
     */
    public function hasContent()
    {
        $layout = $this->loadLayout();
                        throw new \RuntimeException("Rendering CSS/JS Assets failed on error: {$e->getMessage()}", 500, $e);
                    }
                }
            }
 
            if (\GANTRY_DEBUGGER) {
                Debugger::stopTimer('atoms');
            }
        }
    }
 
    /**
     * Returns all non-empty segments from the layout.
     *
     * @return array
     */
    public function segments()
    {
        if (!isset($this->segments)) {
            $this->segments = $this->loadLayout()->toArray();
 
            if (\GANTRY_DEBUGGER) {
                Debugger::startTimer('segments', 'Preparing layout');
            }
 
            $this->prepareLayout($this->segments);
 
            if (\GANTRY_DEBUGGER) {
                Debugger::stopTimer('segments');
            }
        }
 
        return $this->segments;
    }
 
    /**
     * Prepare layout for rendering. Initializes all CSS/JS in particles.
     */
    public function prepare()
    {
            if (\GANTRY_DEBUGGER) {
                Debugger::startTimer('segments', 'Preparing layout');
            }
 
            $this->prepareLayout($this->segments);
 
            if (\GANTRY_DEBUGGER) {
                Debugger::stopTimer('segments');
            }
        }
 
        return $this->segments;
    }
 
    /**
     * Prepare layout for rendering. Initializes all CSS/JS in particles.
     */
    public function prepare()
    {
        $this->segments();
    }
 
    /**
     * Returns details of the theme.
     *
     * @return ThemeDetails
     */
    public function details()
    {
        if (!$this->details) {
            $this->details = new ThemeDetails($this->name);
        }
        return $this->details;
    }
 
    /**
     * Returns configuration of the theme.
     *
     * @return array
     */
     */
    public function extendTwig(Environment $twig, LoaderInterface $loader = null)
    {
        parent::extendTwig($twig, $loader);
 
        // FIXME: Get timezone from WP.
        //$timezone = 'UTC';
        //$twig->getExtension(CoreExtension::class)->setTimezone(new \DateTimeZone($timezone));
 
        return $twig;
    }
 
    public function prepare_particles()
    {
        if(!\is_admin()) {
            $gantry = Gantry::instance();
 
            /** @var Theme $theme */
            $theme = $gantry['theme'];
            $theme->prepare();
        }
    }
 
    /**
     * Convert all stream uris into proper links.
     */
    public function postProcessOutput($html)
    {
        $gantry = Gantry::instance();
 
        /** @var Document $document */
        $document = $gantry['document'];
 
        // Only filter our streams. If there's an error (bad UTF8), fallback with original output.
        return $document::urlFilter($html, false, 0, true) ?: $html;
    }
 
    /**
     * @see AbstractTheme::renderer()
     */
 
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        $num_args = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
 
            $priority = $this->current_priority[ $nesting_level ];
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if ( ! $this->doing_action ) {
                    $args[0] = $value;
                }
 
                // Avoid the array_slice() if possible.
                if ( 0 === $the_['accepted_args'] ) {
                    $value = call_user_func( $the_['function'] );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, $the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
     */
    public function do_action( $args ) {
        $this->doing_action = true;
        $this->apply_filters( '', $args );
 
        // If there are recursive calls to the current action, we haven't finished it until we get to the last one.
        if ( ! $this->nesting_level ) {
            $this->doing_action = false;
        }
    }
 
    /**
     * Processes the functions hooked into the 'all' hook.
     *
     * @since 4.7.0
     *
     * @param array $args Arguments to pass to the hook callbacks. Passed by reference.
     */
    public function do_all_hook( &$args ) {
        $nesting_level                      = $this->nesting_level++;
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        do {
            $priority = current( $this->iterations[ $nesting_level ] );
    if ( ! isset( $wp_filter[ $hook_name ] ) ) {
        if ( isset( $wp_filter['all'] ) ) {
            array_pop( $wp_current_filter );
        }
 
        return;
    }
 
    if ( ! isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $hook_name;
    }
 
    if ( empty( $arg ) ) {
        $arg[] = '';
    } elseif ( is_array( $arg[0] ) && 1 === count( $arg[0] ) && isset( $arg[0][0] ) && is_object( $arg[0][0] ) ) {
        // Backward compatibility for PHP4-style passing of `array( &$this )` as action `$arg`.
        $arg[0] = $arg[0][0];
    }
 
    $wp_filter[ $hook_name ]->do_action( $arg );
 
    array_pop( $wp_current_filter );
}
 
/**
 * Calls the callback functions that have been added to an action hook, specifying arguments in an array.
 *
 * @since 2.1.0
 *
 * @see do_action() This function is identical, but the arguments passed to the
 *                  functions hooked to `$hook_name` are supplied using an array.
 *
 * @global WP_Hook[] $wp_filter         Stores all of the filters and actions.
 * @global int[]     $wp_actions        Stores the number of times each action was triggered.
 * @global string[]  $wp_current_filter Stores the list of current filters with the current one last.
 *
 * @param string $hook_name The name of the action to be executed.
 * @param array  $args      The arguments supplied to the functions hooked to `$hook_name`.
 */
function do_action_ref_array( $hook_name, $args ) {
     * @since 2.8.0
     */
    do_action( 'wp_print_footer_scripts' );
}
 
/**
 * Wrapper for do_action( 'wp_enqueue_scripts' ).
 *
 * Allows plugins to queue scripts for the front end using wp_enqueue_script().
 * Runs first in wp_head() where all is_home(), is_page(), etc. functions are available.
 *
 * @since 2.8.0
 */
function wp_enqueue_scripts() {
    /**
     * Fires when scripts and styles are enqueued.
     *
     * @since 2.8.0
     */
    do_action( 'wp_enqueue_scripts' );
}
 
/**
 * Prints the styles queue in the HTML head on admin pages.
 *
 * @since 2.8.0
 *
 * @global bool $concatenate_scripts
 *
 * @return string[] Handles of the styles that were printed.
 */
function print_admin_styles() {
    global $concatenate_scripts;
 
    $wp_styles = wp_styles();
 
    script_concat_settings();
    $wp_styles->do_concat = $concatenate_scripts;
    $wp_styles->do_items( false );
 
 
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        $num_args = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
 
            $priority = $this->current_priority[ $nesting_level ];
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if ( ! $this->doing_action ) {
                    $args[0] = $value;
                }
 
                // Avoid the array_slice() if possible.
                if ( 0 === $the_['accepted_args'] ) {
                    $value = call_user_func( $the_['function'] );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, $the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
     */
    public function do_action( $args ) {
        $this->doing_action = true;
        $this->apply_filters( '', $args );
 
        // If there are recursive calls to the current action, we haven't finished it until we get to the last one.
        if ( ! $this->nesting_level ) {
            $this->doing_action = false;
        }
    }
 
    /**
     * Processes the functions hooked into the 'all' hook.
     *
     * @since 4.7.0
     *
     * @param array $args Arguments to pass to the hook callbacks. Passed by reference.
     */
    public function do_all_hook( &$args ) {
        $nesting_level                      = $this->nesting_level++;
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        do {
            $priority = current( $this->iterations[ $nesting_level ] );
    if ( ! isset( $wp_filter[ $hook_name ] ) ) {
        if ( isset( $wp_filter['all'] ) ) {
            array_pop( $wp_current_filter );
        }
 
        return;
    }
 
    if ( ! isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $hook_name;
    }
 
    if ( empty( $arg ) ) {
        $arg[] = '';
    } elseif ( is_array( $arg[0] ) && 1 === count( $arg[0] ) && isset( $arg[0][0] ) && is_object( $arg[0][0] ) ) {
        // Backward compatibility for PHP4-style passing of `array( &$this )` as action `$arg`.
        $arg[0] = $arg[0][0];
    }
 
    $wp_filter[ $hook_name ]->do_action( $arg );
 
    array_pop( $wp_current_filter );
}
 
/**
 * Calls the callback functions that have been added to an action hook, specifying arguments in an array.
 *
 * @since 2.1.0
 *
 * @see do_action() This function is identical, but the arguments passed to the
 *                  functions hooked to `$hook_name` are supplied using an array.
 *
 * @global WP_Hook[] $wp_filter         Stores all of the filters and actions.
 * @global int[]     $wp_actions        Stores the number of times each action was triggered.
 * @global string[]  $wp_current_filter Stores the list of current filters with the current one last.
 *
 * @param string $hook_name The name of the action to be executed.
 * @param array  $args      The arguments supplied to the functions hooked to `$hook_name`.
 */
function do_action_ref_array( $hook_name, $args ) {
     * @param string $before           The HTML to output before the date.
     * @param string $after            The HTML to output after the date.
     */
    echo apply_filters( 'the_weekday_date', $the_weekday_date, $before, $after );
}
 
/**
 * Fires the wp_head action.
 *
 * See {@see 'wp_head'}.
 *
 * @since 1.2.0
 */
function wp_head() {
    /**
     * Prints scripts or data in the head tag on the front end.
     *
     * @since 1.5.0
     */
    do_action( 'wp_head' );
}
 
/**
 * Fires the wp_footer action.
 *
 * See {@see 'wp_footer'}.
 *
 * @since 1.5.1
 */
function wp_footer() {
    /**
     * Prints scripts or data before the closing body tag on the front end.
     *
     * @since 1.5.1
     */
    do_action( 'wp_footer' );
}
 
/**
 * Fires the wp_body_open action.
<?php
/**
 * Template canvas file to render the current 'wp_template'.
 *
 * @package WordPress
 */
 
/*
 * Get the template HTML.
 * This needs to run before <head> so that blocks can add scripts and styles in wp_head().
 */
$template_html = get_the_block_template_html();
?><!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>" />
    <?php wp_head(); ?>
</head>
 
<body <?php body_class(); ?>>
<?php wp_body_open(); ?>
 
<?php echo $template_html; ?>
 
<?php wp_footer(); ?>
</body>
</html>
 
 
        $coming_soon_template = get_query_template( 'coming-soon' );
 
        if ( ! $is_fse_theme && $is_store_coming_soon ) {
            get_header();
        }
 
        add_action(
            'wp_head',
            function () {
                echo "<meta name='woo-coming-soon-page' content='yes'>";
            }
        );
 
        if ( ! empty( $coming_soon_template ) && file_exists( $coming_soon_template ) ) {
            if ( ! $is_fse_theme && $is_store_coming_soon && function_exists( 'get_the_block_template_html' ) ) {
                // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
                echo get_the_block_template_html();
            } else {
                include $coming_soon_template;
            }
        }
 
        if ( ! $is_fse_theme && $is_store_coming_soon ) {
            get_footer();
        }
 
        if ( $is_fse_theme ) {
            // Since we've already rendered a template, return empty string to ensure no other template is rendered.
            return '';
        } else {
            // In non-FSE themes, other templates will still be rendered.
            // We need to exit to prevent further processing.
            exit();
        }
    }
 
    /**
     * Determines whether the coming soon screen should be shown.
     *
 
        $this->iterations[ $nesting_level ] = $this->priorities;
 
        $num_args = count( $args );
 
        do {
            $this->current_priority[ $nesting_level ] = current( $this->iterations[ $nesting_level ] );
 
            $priority = $this->current_priority[ $nesting_level ];
 
            foreach ( $this->callbacks[ $priority ] as $the_ ) {
                if ( ! $this->doing_action ) {
                    $args[0] = $value;
                }
 
                // Avoid the array_slice() if possible.
                if ( 0 === $the_['accepted_args'] ) {
                    $value = call_user_func( $the_['function'] );
                } elseif ( $the_['accepted_args'] >= $num_args ) {
                    $value = call_user_func_array( $the_['function'], $args );
                } else {
                    $value = call_user_func_array( $the_['function'], array_slice( $args, 0, $the_['accepted_args'] ) );
                }
            }
        } while ( false !== next( $this->iterations[ $nesting_level ] ) );
 
        unset( $this->iterations[ $nesting_level ] );
        unset( $this->current_priority[ $nesting_level ] );
 
        --$this->nesting_level;
 
        return $value;
    }
 
    /**
     * Calls the callback functions that have been added to an action hook.
     *
     * @since 4.7.0
     *
     * @param array $args Parameters to pass to the callback functions.
        $all_args = func_get_args(); // phpcs:ignore PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection
        _wp_call_all_hook( $all_args );
    }
 
    if ( ! isset( $wp_filter[ $hook_name ] ) ) {
        if ( isset( $wp_filter['all'] ) ) {
            array_pop( $wp_current_filter );
        }
 
        return $value;
    }
 
    if ( ! isset( $wp_filter['all'] ) ) {
        $wp_current_filter[] = $hook_name;
    }
 
    // Pass the value to WP_Hook.
    array_unshift( $args, $value );
 
    $filtered = $wp_filter[ $hook_name ]->apply_filters( $value, $args );
 
    array_pop( $wp_current_filter );
 
    return $filtered;
}
 
/**
 * Calls the callback functions that have been added to a filter hook, specifying arguments in an array.
 *
 * @since 3.0.0
 *
 * @see apply_filters() This function is identical, but the arguments passed to the
 *                      functions hooked to `$hook_name` are supplied using an array.
 *
 * @global WP_Hook[] $wp_filter         Stores all of the filters and actions.
 * @global int[]     $wp_filters        Stores the number of times each filter was triggered.
 * @global string[]  $wp_current_filter Stores the list of current filters with the current one last.
 *
 * @param string $hook_name The name of the filter hook.
 * @param array  $args      The arguments supplied to the functions hooked to `$hook_name`.
            if ( 'is_attachment' === $tag ) {
                remove_filter( 'the_content', 'prepend_attachment' );
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );
 
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
 

Environment & details:

empty
empty
empty
Key Value
quform_session_0895a59d4e13ada0b09b8f53a4704773 PcY1ge5U2FhnS2ZNQgWYnu2kHZ3HDvcRRfzFEFOC
empty
Key Value
SERVER_SOFTWARE Apache
REQUEST_URI /graines-de-legumes-de-lepoque-medievale/
USER d6d8d5ygg69rt2rg
HOME /home/d6d8d5ygg69rt2rg
SCRIPT_NAME /index.php
QUERY_STRING
REQUEST_METHOD GET
SERVER_PROTOCOL HTTP/2.0
GATEWAY_INTERFACE CGI/1.1
REDIRECT_URL /graines-de-legumes-de-lepoque-medievale/
REMOTE_PORT 1320
SCRIPT_FILENAME /home/d6d8d5ygg69rt2rg/public_html/index.php
SERVER_ADMIN webmaster@regne-vegetal.fr
CONTEXT_DOCUMENT_ROOT /home/d6d8d5ygg69rt2rg/public_html
CONTEXT_PREFIX
REQUEST_SCHEME https
DOCUMENT_ROOT /home/d6d8d5ygg69rt2rg/public_html
REMOTE_ADDR 3.142.124.139
SERVER_PORT 443
SERVER_ADDR 81.171.6.67
SERVER_NAME www.regne-vegetal.fr
SERVER_SIGNATURE
PATH /usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin
HTTP_X_HTTPS 1
HTTP_HOST www.regne-vegetal.fr
HTTP_COOKIE quform_session_0895a59d4e13ada0b09b8f53a4704773=PcY1ge5U2FhnS2ZNQgWYnu2kHZ3HDvcRRfzFEFOC
HTTP_REFERER https://www.regne-vegetal.fr/graines-de-legumes-de-lepoque-medievale
HTTP_ACCEPT_ENCODING gzip, br, zstd, deflate
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT */*
proxy-nokeepalive 1
H2_STREAM_TAG 3223773-237-9
H2_STREAM_ID 9
H2_PUSHED_ON
H2_PUSHED
H2_PUSH off
H2PUSH off
HTTP2 on
SSL_TLS_SNI www.regne-vegetal.fr
HTTPS on
HTTP_AUTHORIZATION
SCRIPT_URI https://www.regne-vegetal.fr/graines-de-legumes-de-lepoque-medievale/
SCRIPT_URL /graines-de-legumes-de-lepoque-medievale/
UNIQUE_ID aB3KnLTZ8tv36odzHKgO_AAAURA
REDIRECT_STATUS 200
REDIRECT_H2_STREAM_TAG 3223773-237-9
REDIRECT_H2_STREAM_ID 9
REDIRECT_H2_PUSHED_ON
REDIRECT_H2_PUSHED
REDIRECT_H2_PUSH off
REDIRECT_H2PUSH off
REDIRECT_HTTP2 on
REDIRECT_SSL_TLS_SNI www.regne-vegetal.fr
REDIRECT_HTTPS on
REDIRECT_HTTP_AUTHORIZATION
REDIRECT_SCRIPT_URI https://www.regne-vegetal.fr/graines-de-legumes-de-lepoque-medievale/
REDIRECT_SCRIPT_URL /graines-de-legumes-de-lepoque-medievale/
REDIRECT_UNIQUE_ID aB3KnLTZ8tv36odzHKgO_AAAURA
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1746782876.654
REQUEST_TIME 1746782876
argv Array ( )
argc 0
empty
0. Whoops\Handler\PrettyPageHandler