Twig \ Error \ RuntimeError
An exception has been thrown during the rendering of a template ("ERROR: CSS Compilation on file 'custom_new_landing_page.scss' failed on error: `custom_new_landing_page.scss` file not found for @import: line: 2, column: 1").
Previous exceptions
  • ERROR: CSS Compilation on file 'custom_new_landing_page.scss' failed on error: `custom_new_landing_page.scss` file not found for @import: line: 2, column: 1 (500)
  • `custom_new_landing_page.scss` file not found for @import: line: 2, column: 1 (0)
Twig\Error\RuntimeError thrown with message "An exception has been thrown during the rendering of a template ("ERROR: CSS Compilation on file 'custom_new_landing_page.scss' failed on error: `custom_new_landing_page.scss` file not found for @import: line: 2, column: 1")." Stacktrace: #37 Twig\Error\RuntimeError in /home/dutrition/public_html/wp-content/plugins/gantry5/engines/nucleus/views/partials/page.html.twig:12 #36 RuntimeException in /home/dutrition/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Stylesheet/ScssCompiler.php:194 #35 ScssPhp\ScssPhp\Exception\CompilerException in /home/dutrition/public_html/wp-content/plugins/gantry5/compat/vendor/scssphp/scssphp/src/Compiler.php:6179 #34 ScssPhp\ScssPhp\Compiler:error in /home/dutrition/public_html/wp-content/plugins/gantry5/compat/vendor/scssphp/scssphp/src/Compiler.php:5945 #33 ScssPhp\ScssPhp\Compiler:findImport in /home/dutrition/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Stylesheet/Scss/Compiler.php:39 #32 Gantry\Component\Stylesheet\Scss\Compiler:findImport in /home/dutrition/public_html/wp-content/plugins/gantry5/compat/vendor/scssphp/scssphp/src/Compiler.php:2748 #31 ScssPhp\ScssPhp\Compiler:compileImport in /home/dutrition/public_html/wp-content/plugins/gantry5/compat/vendor/scssphp/scssphp/src/Compiler.php:2964 #30 ScssPhp\ScssPhp\Compiler:compileChild in /home/dutrition/public_html/wp-content/plugins/gantry5/compat/vendor/scssphp/scssphp/src/Compiler.php:2427 #29 ScssPhp\ScssPhp\Compiler:compileChildrenNoReturn in /home/dutrition/public_html/wp-content/plugins/gantry5/compat/vendor/scssphp/scssphp/src/Compiler.php:782 #28 ScssPhp\ScssPhp\Compiler:compileRoot in /home/dutrition/public_html/wp-content/plugins/gantry5/compat/vendor/scssphp/scssphp/src/Compiler.php:560 #27 ScssPhp\ScssPhp\Compiler:compileString in /home/dutrition/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Stylesheet/ScssCompiler.php:183 #26 Gantry\Component\Stylesheet\ScssCompiler:compileFile in /home/dutrition/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Theme/ThemeTrait.php:273 #25 Gantry\Framework\Theme:css in /home/dutrition/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Component/Content/Block/HtmlBlock.php:88 #24 Gantry\Component\Content\Block\HtmlBlock:getStyles in /home/dutrition/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Framework/Document.php:63 #23 Gantry\Framework\Document:registerStyles in /home/dutrition/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Framework/Document.php:54 #22 Gantry\Framework\Document:registerAssets in /home/dutrition/public_html/wp-content/plugins/gantry5/src/classes/Gantry/Framework/Base/Platform.php:279 #21 Gantry\Framework\Base\Platform:finalize in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Extension/CoreExtension.php:1567 #20 twig_get_attribute in /home/dutrition/public_html/wp-content/cache/gantry5/g5_hydrogen/twig/24/2466fc6890bc0c1408ba448bba89d7c8.php:72 #19 __TwigTemplate_384dcc1899bf0d0bc2af95f856877081:block_page_footer in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:182 #18 Twig\Template:displayBlock in /home/dutrition/public_html/wp-content/cache/gantry5/g5_hydrogen/twig/8b/8b7bddfd011ab15d13879aa107e34329.php:158 #17 __TwigTemplate_5dbc42e70b36fe55d9d43e9c1814762a:doDisplay in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #16 Twig\Template:displayWithErrorHandling in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #15 Twig\Template:display in /home/dutrition/public_html/wp-content/cache/gantry5/g5_hydrogen/twig/24/2466fc6890bc0c1408ba448bba89d7c8.php:43 #14 __TwigTemplate_384dcc1899bf0d0bc2af95f856877081:doDisplay in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #13 Twig\Template:displayWithErrorHandling in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #12 Twig\Template:display in /home/dutrition/public_html/wp-content/cache/gantry5/g5_hydrogen/twig/2c/2c9d755c6ba7d1e865537f2a330ec46f.php:47 #11 __TwigTemplate_6e245d1c2c88ebbb03aa38bf9001dc02:doDisplay in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:405 #10 Twig\Template:displayWithErrorHandling in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:378 #9 Twig\Template:display in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/Template.php:390 #8 Twig\Template:render in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/twig/twig/src/TemplateWrapper.php:45 #7 Twig\TemplateWrapper:render in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/timber/timber/lib/Loader.php:79 #6 Timber\Loader:render in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/timber/timber/lib/Timber.php:334 #5 Timber\Timber:compile in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/timber/timber/lib/Timber.php:383 #4 Timber\Timber:fetch in /home/dutrition/public_html/wp-content/plugins/gantry5/vendor/timber/timber/lib/Timber.php:410 #3 Timber\Timber:render in /home/dutrition/public_html/wp-content/themes/g5_hydrogen/page.php:48 #2 include in /home/dutrition/public_html/wp-includes/template-loader.php:132 #1 require_once in /home/dutrition/public_html/wp-blog-header.php:19 #0 require in /home/dutrition/public_html/index.php:17
Stack frames (38)
37
Twig\Error\RuntimeError
/engines/nucleus/views/partials/page.html.twig12
36
RuntimeException
/src/classes/Gantry/Component/Stylesheet/ScssCompiler.php194
35
ScssPhp\ScssPhp\Exception\CompilerException
/compat/vendor/scssphp/scssphp/src/Compiler.php6179
34
ScssPhp\ScssPhp\Compiler error
/compat/vendor/scssphp/scssphp/src/Compiler.php5945
33
ScssPhp\ScssPhp\Compiler findImport
/src/classes/Gantry/Component/Stylesheet/Scss/Compiler.php39
32
Gantry\Component\Stylesheet\Scss\Compiler findImport
/compat/vendor/scssphp/scssphp/src/Compiler.php2748
31
ScssPhp\ScssPhp\Compiler compileImport
/compat/vendor/scssphp/scssphp/src/Compiler.php2964
30
ScssPhp\ScssPhp\Compiler compileChild
/compat/vendor/scssphp/scssphp/src/Compiler.php2427
29
ScssPhp\ScssPhp\Compiler compileChildrenNoReturn
/compat/vendor/scssphp/scssphp/src/Compiler.php782
28
ScssPhp\ScssPhp\Compiler compileRoot
/compat/vendor/scssphp/scssphp/src/Compiler.php560
27
ScssPhp\ScssPhp\Compiler compileString
/src/classes/Gantry/Component/Stylesheet/ScssCompiler.php183
26
Gantry\Component\Stylesheet\ScssCompiler compileFile
/src/classes/Gantry/Component/Theme/ThemeTrait.php273
25
Gantry\Framework\Theme css
/src/classes/Gantry/Component/Content/Block/HtmlBlock.php88
24
Gantry\Component\Content\Block\HtmlBlock getStyles
/src/classes/Gantry/Framework/Document.php63
23
Gantry\Framework\Document registerStyles
/src/classes/Gantry/Framework/Document.php54
22
Gantry\Framework\Document registerAssets
/src/classes/Gantry/Framework/Base/Platform.php279
21
Gantry\Framework\Base\Platform finalize
/vendor/twig/twig/src/Extension/CoreExtension.php1567
20
twig_get_attribute
/home/dutrition/public_html/wp-content/cache/gantry5/g5_hydrogen/twig/24/2466fc6890bc0c1408ba448bba89d7c8.php72
19
__TwigTemplate_384dcc1899bf0d0bc2af95f856877081 block_page_footer
/vendor/twig/twig/src/Template.php182
18
Twig\Template displayBlock
/home/dutrition/public_html/wp-content/cache/gantry5/g5_hydrogen/twig/8b/8b7bddfd011ab15d13879aa107e34329.php158
17
__TwigTemplate_5dbc42e70b36fe55d9d43e9c1814762a doDisplay
/vendor/twig/twig/src/Template.php405
16
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
15
Twig\Template display
/home/dutrition/public_html/wp-content/cache/gantry5/g5_hydrogen/twig/24/2466fc6890bc0c1408ba448bba89d7c8.php43
14
__TwigTemplate_384dcc1899bf0d0bc2af95f856877081 doDisplay
/vendor/twig/twig/src/Template.php405
13
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
12
Twig\Template display
/home/dutrition/public_html/wp-content/cache/gantry5/g5_hydrogen/twig/2c/2c9d755c6ba7d1e865537f2a330ec46f.php47
11
__TwigTemplate_6e245d1c2c88ebbb03aa38bf9001dc02 doDisplay
/vendor/twig/twig/src/Template.php405
10
Twig\Template displayWithErrorHandling
/vendor/twig/twig/src/Template.php378
9
Twig\Template display
/vendor/twig/twig/src/Template.php390
8
Twig\Template render
/vendor/twig/twig/src/TemplateWrapper.php45
7
Twig\TemplateWrapper render
/vendor/timber/timber/lib/Loader.php79
6
Timber\Loader render
/vendor/timber/timber/lib/Timber.php334
5
Timber\Timber compile
/vendor/timber/timber/lib/Timber.php383
4
Timber\Timber fetch
/vendor/timber/timber/lib/Timber.php410
3
Timber\Timber render
/home/dutrition/public_html/wp-content/themes/g5_hydrogen/page.php48
2
include
/home/dutrition/public_html/wp-includes/template-loader.php132
1
require_once
/home/dutrition/public_html/wp-blog-header.php19
0
require
/home/dutrition/public_html/index.php17
{% extends "@nucleus/page.html.twig" %}
 
{% block page_head -%}
    {% if page_head %}
        {{ page_head|raw }}
    {% else %}
        {{ parent() }}
    {% endif %}
{%- endblock %}
 
{% block page_footer %}
    {% do gantry.platform.finalize() %}
    {{ wp_footer|raw }}
{% endblock %}
 
        // Set the lookup paths.
        $this->functions->setBasePath($path);
        $compiler->setImportPaths([[$this, 'findImport']]);
 
        // Run the compiler.
        $compiler->addVariables($this->getVariables(true));
        $scss = '$output-bourbon-deprecation-warnings: false;' . "\n" . '@import "' . $in . '.scss"';
        try {
            $this->result = $compiler->compileString($scss);
            $css = $this->result->getCss();
        } catch (CompilerException $e) {
            if (version_compare(static::$options['compatibility'], '5.5', '<')) {
                static::$options['legacy'][$in] = true;
                $this->warnings['__TITLE__'] = 'Please update your theme!';
                $this->warnings[$in] = ['WARNING: ' . $e->getMessage()];
 
                return $this->compileLegacyFile($in);
            }
 
            throw new \RuntimeException("ERROR: CSS Compilation on file '{$in}.scss' failed on error: {$e->getMessage()}", 500, $e);
        } catch (\Exception $e) {
            throw new \RuntimeException("ERROR: CSS Compilation on file '{$in}.scss' failed on fatal error: {$e->getMessage()}", 500, $e);
        }
        if (strpos($css, $scss) === 0) {
            $css = '/* ' . $scss . ' */';
        }
 
        // Extract map from css and save it as separate file.
        $pos = strrpos($css, '/*# sourceMappingURL=');
        if ($pos !== false) {
            $map = json_decode(urldecode(substr($css, $pos + 43, -3)), true);
 
            /** @var Document $document */
            $document = $gantry['document'];
 
            foreach ($map['sources'] as &$source) {
                $source = $document::url($source, false, -1);
            }
            unset($source);
 
Exception message: ERROR: CSS Compilation on file 'custom_new_landing_page.scss' failed on error: `custom_new_landing_page.scss` file not found for @import: line: 2, column: 1
     * Build an error (exception)
     *
     * @internal
     *
     * @param string                     $msg Message with optional sprintf()-style vararg parameters
     * @param bool|float|int|string|null ...$args
     *
     * @return CompilerException
     */
    public function error($msg, ...$args)
    {
        if ($args) {
            $msg = sprintf($msg, ...$args);
        }
 
        if (! $this->ignoreCallStackMessage) {
            $msg = $this->addLocationToMessage($msg);
        }
 
        return new CompilerException($msg);
    }
 
    /**
     * @param string $msg
     *
     * @return string
     */
    private function addLocationToMessage($msg)
    {
        $line   = $this->sourceLine;
        $column = $this->sourceColumn;
 
        $loc = isset($this->sourceNames[$this->sourceIndex])
            ? $this->getPrettyPath($this->sourceNames[$this->sourceIndex]) . " on line $line, at column $column"
            : "line: $line, column: $column";
 
        $msg = "$msg: $loc";
 
        $callStackMsg = $this->callStackMessage();
 
Exception message: `custom_new_landing_page.scss` file not found for @import: line: 2, column: 1
                // check custom callback for import path
                $file = \call_user_func($dir, $url);
 
                if (! \is_null($file)) {
                    return $file;
                }
            }
        }
 
        if ($this->legacyCwdImportPath) {
            $path = $this->resolveImportPath($url, getcwd());
 
            if (!\is_null($path)) {
                @trigger_error('Resolving imports relatively to the current working directory is deprecated. If that\'s the intended behavior, the value of "getcwd()" should be added as an import path explicitly instead. If this was used for resolving relative imports of the input alongside "chdir" with the source directory, the path of the input file should be passed to "compileString()" instead.', E_USER_DEPRECATED);
 
                return $path;
            }
        }
 
        throw $this->error("`$url` file not found for @import");
    }
 
    /**
     * @param string $url
     * @param string $baseDir
     *
     * @return string|null
     */
    private function resolveImportPath($url, $baseDir)
    {
        $path = Path::join($baseDir, $url);
 
        $hasExtension = preg_match('/.s[ac]ss$/', $url);
 
        if ($hasExtension) {
            return $this->checkImportPathConflicts($this->tryImportPath($path));
        }
 
        $result = $this->checkImportPathConflicts($this->tryImportPathWithExtensions($path));
 
 * Class Compiler
 * @package Gantry\Component\Stylesheet\Scss
 */
class Compiler extends \ScssPhp\ScssPhp\Compiler
{
    static public $currentDir;
 
    /**
     * Return the file path for an import url if it exists
     *
     * @param string      $url
     * @param string|null $currentDir
     *
     * @return string|null
     */
    public function findImport($url, $currentDir = null)
    {
        static::$currentDir = $currentDir;
 
        return parent::findImport($url, null);
    }
}
 
 
        // t1 == t2, neither m1 nor m2 are "not"
        return [empty($m1) ? $m2 : $m1, $t1];
    }
 
    /**
     * Compile import; returns true if the value was something that could be imported
     *
     * @param array                                  $rawPath
     * @param \ScssPhp\ScssPhp\Formatter\OutputBlock $out
     * @param bool                                   $once
     *
     * @return bool
     */
    protected function compileImport($rawPath, OutputBlock $out, $once = false)
    {
        if ($rawPath[0] === Type::T_STRING) {
            $path = $this->compileStringContent($rawPath);
 
            if (strpos($path, 'url(') !== 0 && $filePath = $this->findImport($path, $this->currentDirectory)) {
                $this->registerImport($this->currentDirectory, $path, $filePath);
 
                if (! $once || ! \in_array($filePath, $this->importedFiles)) {
                    $this->importFile($filePath, $out);
                    $this->importedFiles[] = $filePath;
                }
 
                return true;
            }
 
            $this->appendRootDirective('@import ' . $this->compileImportPath($rawPath) . ';', $out);
 
            return false;
        }
 
        if ($rawPath[0] === Type::T_LIST) {
            // handle a list of strings
            if (\count($rawPath[2]) === 0) {
                return false;
            }
            $sourceIndex  = array_search($out->sourceName, $this->sourceNames);
            $this->sourceColumn = $out->sourceColumn;
 
            if ($sourceIndex === false) {
                $sourceIndex = null;
            }
            $this->sourceIndex = $sourceIndex;
        }
 
        switch ($child[0]) {
            case Type::T_SCSSPHP_IMPORT_ONCE:
                $rawPath = $this->reduce($child[1]);
 
                $this->compileImport($rawPath, $out, true);
                break;
 
            case Type::T_IMPORT:
                $rawPath = $this->reduce($child[1]);
 
                $this->compileImport($rawPath, $out);
                break;
 
            case Type::T_DIRECTIVE:
                $this->compileDirective($child[1], $out);
                break;
 
            case Type::T_AT_ROOT:
                $this->compileAtRoot($child[1]);
                break;
 
            case Type::T_MEDIA:
                $this->compileMedia($child[1]);
                break;
 
            case Type::T_BLOCK:
                $this->compileBlock($child[1]);
                break;
 
            case Type::T_CHARSET:
                break;
     *
     * @return void
     *
     * @throws \Exception
     */
    protected function compileChildrenNoReturn($stms, OutputBlock $out, $selfParent = null, $traceName = '')
    {
        $this->pushCallStack($traceName);
 
        foreach ($stms as $stm) {
            if ($selfParent && isset($stm[1]) && \is_object($stm[1]) && $stm[1] instanceof Block) {
                $oldSelfParent = $stm[1]->selfParent;
                $stm[1]->selfParent = $selfParent;
                $ret = $this->compileChild($stm, $out);
                $stm[1]->selfParent = $oldSelfParent;
            } elseif ($selfParent && \in_array($stm[0], [Type::T_INCLUDE, Type::T_EXTEND])) {
                $stm['selfParent'] = $selfParent;
                $ret = $this->compileChild($stm, $out);
            } else {
                $ret = $this->compileChild($stm, $out);
            }
 
            if (isset($ret)) {
                throw $this->error('@return may only be used within a function');
            }
        }
 
        $this->popCallStack();
    }
 
 
    /**
     * evaluate media query : compile internal value keeping the structure unchanged
     *
     * @param array $queryList
     *
     * @return array
     */
    protected function evaluateMediaQuery($queryList)
    {
            $out->sourceName = isset($this->sourceNames[$this->sourceIndex]) ? $this->sourceNames[$this->sourceIndex] : '(stdin)';
            $out->sourceLine = $this->sourceLine;
            $out->sourceColumn = $this->sourceColumn;
        }
 
        return $out;
    }
 
    /**
     * Compile root
     *
     * @param \ScssPhp\ScssPhp\Block $rootBlock
     *
     * @return void
     */
    protected function compileRoot(Block $rootBlock)
    {
        $this->rootBlock = $this->scope = $this->makeOutputBlock(Type::T_ROOT);
 
        $this->compileChildrenNoReturn($rootBlock->children, $this->scope);
        assert($this->scope !== null);
        $this->flattenSelectors($this->scope);
        $this->missingSelectors();
    }
 
    /**
     * Report missing selectors
     *
     * @return void
     */
    protected function missingSelectors()
    {
        foreach ($this->extends as $extend) {
            if (isset($extend[3])) {
                continue;
            }
 
            list($target, $origin, $block) = $extend;
 
            // ignore if !optional
            $this->rootDirectory = getcwd();
        }
 
        try {
            $this->parser = $this->parserFactory($path);
            $tree         = $this->parser->parse($source);
            $this->parser = null;
 
            $this->formatter = new $this->configuredFormatter();
            $this->rootBlock = null;
            $this->rootEnv   = $this->pushEnv($tree);
 
            $warnCallback = function ($message, $deprecation) {
                $this->logger->warn($message, $deprecation);
            };
            $previousWarnCallback = Warn::setCallback($warnCallback);
 
            try {
                $this->injectVariables($this->registeredVars);
                $this->compileRoot($tree);
                $this->popEnv();
            } finally {
                Warn::setCallback($previousWarnCallback);
            }
 
            $sourceMapGenerator = null;
 
            if ($this->sourceMap) {
                if (\is_object($this->sourceMap) && $this->sourceMap instanceof SourceMapGenerator) {
                    $sourceMapGenerator = $this->sourceMap;
                    $this->sourceMap = self::SOURCE_MAP_FILE;
                } elseif ($this->sourceMap !== self::SOURCE_MAP_NONE) {
                    $sourceMapGenerator = new SourceMapGenerator($this->sourceMapOptions);
                }
            }
            assert($this->scope !== null);
 
            $out = $this->formatter->format($this->scope, $sourceMapGenerator);
 
            $prefix = '';
        if ($file->locked() === false) {
            // File was already locked by another process, lets avoid compiling the same file twice.
            return false;
        }
 
        $logfile = fopen('php://memory', 'rb+');
        $logger = new StreamLogger($logfile, true);
 
        $compiler = $this->getCompiler();
        $compiler->setLogger($logger);
 
        // Set the lookup paths.
        $this->functions->setBasePath($path);
        $compiler->setImportPaths([[$this, 'findImport']]);
 
        // Run the compiler.
        $compiler->addVariables($this->getVariables(true));
        $scss = '$output-bourbon-deprecation-warnings: false;' . "\n" . '@import "' . $in . '.scss"';
        try {
            $this->result = $compiler->compileString($scss);
            $css = $this->result->getCss();
        } catch (CompilerException $e) {
            if (version_compare(static::$options['compatibility'], '5.5', '<')) {
                static::$options['legacy'][$in] = true;
                $this->warnings['__TITLE__'] = 'Please update your theme!';
                $this->warnings[$in] = ['WARNING: ' . $e->getMessage()];
 
                return $this->compileLegacyFile($in);
            }
 
            throw new \RuntimeException("ERROR: CSS Compilation on file '{$in}.scss' failed on error: {$e->getMessage()}", 500, $e);
        } catch (\Exception $e) {
            throw new \RuntimeException("ERROR: CSS Compilation on file '{$in}.scss' failed on fatal error: {$e->getMessage()}", 500, $e);
        }
        if (strpos($css, $scss) === 0) {
            $css = '/* ' . $scss . ' */';
        }
 
        // Extract map from css and save it as separate file.
        $pos = strrpos($css, '/*# sourceMappingURL=');
    /**
     * Returns URL to CSS file.
     *
     * If file does not exist, it will be created by using CSS compiler.
     *
     * @param string $name
     * @return string
     */
    public function css($name)
    {
        if (!isset($this->cssCache[$name])) {
            $compiler = $this->compiler();
 
            if ($compiler->needsCompile($name, [$this, 'getCssVariables'])) {
                if (\GANTRY_DEBUGGER) {
                    Debugger::startTimer("css-{$name}", "Compiling CSS: {$name}");
                    Debugger::addMessage("Compiling CSS: {$name}");
                }
 
                $compiler->compileFile($name);
 
                if (\GANTRY_DEBUGGER) {
                    Debugger::stopTimer("css-{$name}");
                }
            }
 
            $this->cssCache[$name] = $compiler->getCssUrl($name);
        }
 
        return $this->cssCache[$name];
    }
 
    /**
     * @return array
     */
    public function getCssVariables()
    {
        if ($this->preset) {
            $variables = $this->presets()->flatten($this->preset . '.styles', '-');
        } else {
        $styles = $this->getAssetsInLocation('styles', $location);
 
        if (!$styles) {
            return [];
        }
 
        $gantry = Gantry::instance();
 
        /** @var Theme|null $theme */
        $theme = isset($gantry['theme']) ? $gantry['theme'] : null;
 
        /** @var Document $document */
        $document = $gantry['document'];
 
        foreach ($styles as $key => $style) {
            if (isset($style['href'])) {
                $url = $style['href'];
                if ($theme && preg_match('|\.scss$|', $url)) {
                    // Compile SCSS files.
                    $url = $theme->css(Gantry::basename($url, '.scss'));
                }
                // Deal with streams and relative paths.
                $url = $document::url($url, null, null, false);
 
                $styles[$key]['href'] = $url;
            }
        }
 
        return $styles;
    }
 
    /**
     * @param string $location
     * @return array
     * @since 5.4.3
     */
    public function getScripts($location = 'head')
    {
        $scripts = $this->getAssetsInLocation('scripts', $location);
 
        'mootools.framework' => 'registerMootools',
        'mootools.core' => 'registerMootools',
        'mootools.more' => 'registerMootoolsMore',
        'lightcase' => 'registerLightcase',
        'lightcase.init' => 'registerLightcaseInit',
    ];
 
    public static function registerAssets()
    {
        static::registerFrameworks();
        static::registerStyles();
        static::registerScripts('head');
        static::registerScripts('footer');
        static::registerHtmlBlocks('head_top');
        static::registerHtmlBlocks('head_meta');
    }
 
    public static function registerStyles()
    {
        $styles = static::$stack[0]->getStyles();
 
        foreach ($styles as $style) {
            switch ($style[':type']) {
                case 'file':
                    $array = explode('?', $style['href']);
                    $href = array_shift($array);
                    $version = array_shift($array) ?: false;
                    $name = isset($style['id']) ? $style['id'] : Gantry::basename($href, '.css');
                    if (strpos($version, '=')) {
                        $href .= '?' . $version;
                        $version = null;
                    }
                    \wp_enqueue_style($name, $href, [], $version, $style['media']);
                    break;
                case 'inline':
                    $type = !empty($style['type']) ? $style['type'] : 'text/css';
                    self::$wp_styles[] = "<style type=\"{$type}\">{$style['content']}</style>";
                    break;
            }
        }
        'jquery' => 'registerJquery',
        'jquery.framework' => 'registerJquery',
        'jquery.ui.core' => 'registerJqueryUiCore',
        'jquery.ui.sortable' => 'registerJqueryUiSortable',
        'bootstrap.2' => 'registerBootstrap2',
        'bootstrap.3' => 'registerBootstrap3',
        'bootstrap.4' => 'registerBootstrap4',
        'bootstrap.5' => 'registerBootstrap5',
        'mootools' => 'registerMootools',
        'mootools.framework' => 'registerMootools',
        'mootools.core' => 'registerMootools',
        'mootools.more' => 'registerMootoolsMore',
        'lightcase' => 'registerLightcase',
        'lightcase.init' => 'registerLightcaseInit',
    ];
 
    public static function registerAssets()
    {
        static::registerFrameworks();
        static::registerStyles();
        static::registerScripts('head');
        static::registerScripts('footer');
        static::registerHtmlBlocks('head_top');
        static::registerHtmlBlocks('head_meta');
    }
 
    public static function registerStyles()
    {
        $styles = static::$stack[0]->getStyles();
 
        foreach ($styles as $style) {
            switch ($style[':type']) {
                case 'file':
                    $array = explode('?', $style['href']);
                    $href = array_shift($array);
                    $version = array_shift($array) ?: false;
                    $name = isset($style['id']) ? $style['id'] : Gantry::basename($href, '.css');
                    if (strpos($version, '=')) {
                        $href .= '?' . $version;
                        $version = null;
    {
        return null;
    }
 
    /**
     * @param string $text
     * @return string
     */
    public function filter($text)
    {
        return $text;
    }
 
    public function finalize()
    {
        $gantry = Gantry::instance();
        /** @var Document $document */
        $document = $gantry['document'];
 
        $document::registerAssets();
    }
 
    /**
     * @return mixed|null
     */
    public function call()
    {
        $args = func_get_args();
        $callable = array_shift($args);
        return is_callable($callable) ? call_user_func_array($callable, $args) : null;
    }
 
    /**
     * @param string $action
     * @param int|string|null $id
     * @return bool
     */
    public function authorize($action, $id = null)
    {
        return true;
 
        if ($ignoreStrictCheck || !$env->isStrictVariables()) {
            return;
        }
 
        throw new RuntimeError(sprintf('Neither the property "%1$s" nor one of the methods "%1$s()", "get%1$s()"/"is%1$s()"/"has%1$s()" or "__call()" exist and have public access in class "%2$s".', $item, $class), $lineno, $source);
    }
 
    if ($isDefinedTest) {
        return true;
    }
 
    if ($sandboxed) {
        $env->getExtension(SandboxExtension::class)->checkMethodAllowed($object, $method, $lineno, $source);
    }
 
    // Some objects throw exceptions when they have __call, and the method we try
    // to call is not supported. If ignoreStrictCheck is true, we should return null.
    try {
        $ret = $object->$method(...$arguments);
    } catch (\BadMethodCallException $e) {
        if ($call && ($ignoreStrictCheck || !$env->isStrictVariables())) {
            return;
        }
        throw $e;
    }
 
    return $ret;
}
 
/**
 * Returns the values from a single column in the input array.
 *
 * <pre>
 *  {% set items = [{ 'fruit' : 'apple'}, {'fruit' : 'orange' }] %}
 *
 *  {% set fruits = items|column('fruit') %}
 *
 *  {# fruits now contains ['apple', 'orange'] #}
 * </pre>
            echo "        ";
            echo ($context["page_head"] ?? null);
            echo "
    ";
        } else {
            // line 7
            echo "        ";
            $this->displayParentBlock("page_head", $context, $blocks);
            echo "
    ";
        }
    }
 
    // line 11
    public function block_page_footer($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 12
        echo "    ";
        twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "platform", [], "any", false, false, false, 12), "finalize", [], "method", false, false, false, 12);
        // line 13
        echo "    ";
        echo ($context["wp_footer"] ?? null);
        echo "
";
    }
 
    public function getTemplateName()
    {
        return "partials/page.html.twig";
    }
 
    public function isTraitable()
    {
        return false;
    }
 
    public function getDebugInfo()
    {
        return array (  74 => 13,  71 => 12,  67 => 11,  59 => 7,  53 => 5,  51 => 4,  47 => 3,  36 => 1,);
    {
        if ($useBlocks && isset($blocks[$name])) {
            $template = $blocks[$name][0];
            $block = $blocks[$name][1];
        } elseif (isset($this->blocks[$name])) {
            $template = $this->blocks[$name][0];
            $block = $this->blocks[$name][1];
        } else {
            $template = null;
            $block = null;
        }
 
        // avoid RCEs when sandbox is enabled
        if (null !== $template && !$template instanceof self) {
            throw new \LogicException('A block must be a method on a \Twig\Template instance.');
        }
 
        if (null !== $template) {
            try {
                $template->$block($context, $blocks);
            } catch (Error $e) {
                if (!$e->getSourceContext()) {
                    $e->setSourceContext($template->getSourceContext());
                }
 
                // this is mostly useful for \Twig\Error\LoaderError exceptions
                // see \Twig\Error\LoaderError
                if (-1 === $e->getTemplateLine()) {
                    $e->guess();
                }
 
                throw $e;
            } catch (\Exception $e) {
                $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $template->getSourceContext(), $e);
                $e->guess();
 
                throw $e;
            }
        } elseif (false !== $parent = $this->getParent($context)) {
            $parent->displayBlock($name, $context, array_merge($this->blocks, $blocks), false, $templateContext ?? $this);
        // line 62
        echo "    ";
        echo twig_join_filter(twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 62), "getHtml", [0 => "body_bottom"], "method", false, false, false, 62), "
    ");
        echo "
";
        $context["body_bottom"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 65
        twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "document", [], "any", false, false, false, 65), "addScript", [0 => $this->extensions['Gantry\Component\Twig\TwigExtension']->urlFunc("gantry-assets://js/main.js"), 1 => 11, 2 => "footer"], "method", false, false, false, 65);
        // line 69
        ob_start(function () { return ''; });
        // line 70
        echo "    ";
        $this->displayBlock('page_head', $context, $blocks);
        $context["page_head"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 75
        ob_start(function () { return ''; });
        // line 76
        echo "    ";
        $this->displayBlock('page_footer', $context, $blocks);
        // line 80
        echo "
    ";
        // line 81
        echo twig_get_attribute($this->env, $this->source, twig_get_attribute($this->env, $this->source, ($context["gantry"] ?? null), "debugger", [], "any", false, false, false, 81), "render", [], "method", false, false, false, 81);
        echo "
";
        $context["page_footer"] = ('' === $tmp = ob_get_clean()) ? '' : new Markup($tmp, $this->env->getCharset());
        // line 84
        $this->displayBlock('page', $context, $blocks);
    }
 
    // line 8
    public function block_content($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 9
        echo "        ";
    }
 
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
 
        $this->source = $this->getSourceContext();
 
        $this->blocks = [
            'page_head' => [$this, 'block_page_head'],
            'page_footer' => [$this, 'block_page_footer'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "@nucleus/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        $this->parent = $this->loadTemplate("@nucleus/page.html.twig", "partials/page.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 3
    public function block_page_head($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 4
        if (($context["page_head"] ?? null)) {
            // line 5
            echo "        ";
            echo ($context["page_head"] ?? null);
            echo "
    ";
        } else {
            // line 7
            echo "        ";
            $this->displayParentBlock("page_head", $context, $blocks);
            echo "
    ";
        }
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
            'content' => [$this, 'block_content'],
        ];
    }
 
    protected function doGetParent(array $context)
    {
        // line 1
        return "partials/page.html.twig";
    }
 
    protected function doDisplay(array $context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 2
        $context["twigTemplate"] = "page.html.twig";
        // line 3
        $context["scope"] = "page";
        // line 1
        $this->parent = $this->loadTemplate("partials/page.html.twig", "page.html.twig", 1);
        $this->parent->display($context, array_merge($this->blocks, $blocks));
    }
 
    // line 5
    public function block_content($context, array $blocks = [])
    {
        $macros = $this->macros;
        // line 6
        echo "
    <div class=\"platform-content\">
        <div class=\"content-wrapper\">
            <section class=\"entry\">
 
                ";
        // line 11
        $this->loadTemplate([0 => (("partials/content-" . ($context["scope"] ?? null)) . ".html.twig"), 1 => "partials/content.html.twig"], "page.html.twig", 11)->display($context);
        // line 12
        echo "
            </section>
        </div> <!-- /content-wrapper -->
    </div>
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
            // this is mostly useful for \Twig\Error\LoaderError exceptions
            // see \Twig\Error\LoaderError
            if (-1 === $e->getTemplateLine()) {
                $e->guess();
            }
 
            throw $e;
        } catch (\Exception $e) {
            $e = new RuntimeError(sprintf('An exception has been thrown during the rendering of a template ("%s").', $e->getMessage()), -1, $this->getSourceContext(), $e);
            $e->guess();
 
            throw $e;
        }
    }
 
    {
        return $this;
    }
 
    /**
     * Returns all blocks.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @return array An array of blocks
     */
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
    public function getBlocks()
    {
        return $this->blocks;
    }
 
    public function display(array $context, array $blocks = [])
    {
        $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks, $blocks));
    }
 
    public function render(array $context)
    {
        $level = ob_get_level();
        if ($this->env->isDebug()) {
            ob_start();
        } else {
            ob_start(function () { return ''; });
        }
        try {
            $this->display($context);
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        }
 
        return ob_get_clean();
    }
 
    protected function displayWithErrorHandling(array $context, array $blocks = [])
    {
        try {
            $this->doDisplay($context, $blocks);
        } catch (Error $e) {
            if (!$e->getSourceContext()) {
                $e->setSourceContext($this->getSourceContext());
            }
 
     * directly (use Twig\Environment::load() instead).
     *
     * @internal
     */
    public function __construct(Environment $env, Template $template)
    {
        $this->env = $env;
        $this->template = $template;
    }
 
    /**
     * Renders the template.
     *
     * @param array $context An array of parameters to pass to the template
     */
    public function render(array $context = []): string
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        return $this->template->render($context, \func_get_args()[1] ?? []);
    }
 
    /**
     * Displays the template.
     *
     * @param array $context An array of parameters to pass to the template
     */
    public function display(array $context = [])
    {
        // using func_get_args() allows to not expose the blocks argument
        // as it should only be used by internal code
        $this->template->display($context, \func_get_args()[1] ?? []);
    }
 
    /**
     * Checks if a block is defined.
     *
     * @param string $name    The block name
     * @param array  $context An array of parameters to pass to the template
     */
 
        $key = null;
        $output = false;
        if ( false !== $expires ) {
            ksort($data);
            $key = md5($file.json_encode($data));
            $output = $this->get_cache($key, self::CACHEGROUP, $cache_mode);
        }
 
        if ( false === $output || null === $output ) {
            $twig = $this->get_twig();
            if ( strlen($file) ) {
                $loader = $this->get_loader();
                $result = $loader->getCacheKey($file);
                do_action('timber_loader_render_file', $result);
            }
            $data = apply_filters('timber_loader_render_data', $data);
            $data = apply_filters('timber/loader/render_data', $data, $file);
            $template = $twig->load($file);
            $output = $template->render($data);
        }
 
        if ( false !== $output && false !== $expires && null !== $key ) {
            $this->delete_cache();
            $this->set_cache($key, $output, self::CACHEGROUP, $expires, $cache_mode);
        }
        $output = apply_filters('timber_output', $output);
        return apply_filters('timber/output', $output, $data, $file);
    }
 
    protected function delete_cache() {
        Cleaner::delete_transients();
    }
 
    /**
     * Get first existing template.
     *
     * @param array|string $templates  Name(s) of the Twig template(s) to choose from.
     * @return string|bool             Name of chosen template, otherwise false.
     */
        if ( $via_render ) {
            $file = apply_filters('timber_render_file', $file);
        } else {
            $file = apply_filters('timber_compile_file', $file);
        }
 
        $output = false;
 
        if ($file !== false) {
            if ( is_null($data) ) {
                $data = array();
            }
 
            if ( $via_render ) {
                $data = apply_filters('timber_render_data', $data);
            } else {
                $data = apply_filters('timber_compile_data', $data);
            }
 
            $output = $loader->render($file, $data, $expires, $cache_mode);
        } else {
            if ( is_array($filenames) ) {
                $filenames = implode(", ", $filenames);
            }
            Helper::error_log( 'Error loading your template files: '.$filenames.'. Make sure one of these files exists.' );
        }
 
        do_action('timber_compile_done');
        return $output;
    }
 
    /**
     * Compile a string.
     *
     * @api
     * @example
     * ```php
     * $data = array(
     *     'username' => 'Jane Doe',
     * );
        $twig = $dummy_loader->get_twig();
        $template = $twig->createTemplate($string);
        return $template->render($data);
    }
 
    /**
     * Fetch function.
     *
     * @api
     * @param array|string $filenames  Name of the Twig file to render. If this is an array of files, Timber will
     *                                 render the first file that exists.
     * @param array        $data       Optional. An array of data to use in Twig template.
     * @param bool|int     $expires    Optional. In seconds. Use false to disable cache altogether. When passed an
     *                                 array, the first value is used for non-logged in visitors, the second for users.
     *                                 Default false.
     * @param string       $cache_mode Optional. Any of the cache mode constants defined in TimberLoader.
     * @return bool|string The returned output.
     */
    public static function fetch( $filenames, $data = array(), $expires = false, $cache_mode = Loader::CACHE_USE_DEFAULT ) {
        $output = self::compile($filenames, $data, $expires, $cache_mode, true);
        $output = apply_filters('timber_compile_result', $output);
        return $output;
    }
 
    /**
     * Render function.
     *
     * Passes data to a Twig file and echoes the output.
     *
     * @api
     * @example
     * ```php
     * $context = Timber::context();
     *
     * Timber::render( 'index.twig', $context );
     * ```
     * @param array|string $filenames  Name of the Twig file to render. If this is an array of files, Timber will
     *                                 render the first file that exists.
     * @param array        $data       Optional. An array of data to use in Twig template.
     * @param bool|int     $expires    Optional. In seconds. Use false to disable cache altogether. When passed an
     * Passes data to a Twig file and echoes the output.
     *
     * @api
     * @example
     * ```php
     * $context = Timber::context();
     *
     * Timber::render( 'index.twig', $context );
     * ```
     * @param array|string $filenames  Name of the Twig file to render. If this is an array of files, Timber will
     *                                 render the first file that exists.
     * @param array        $data       Optional. An array of data to use in Twig template.
     * @param bool|int     $expires    Optional. In seconds. Use false to disable cache altogether. When passed an
     *                                 array, the first value is used for non-logged in visitors, the second for users.
     *                                 Default false.
     * @param string       $cache_mode Optional. Any of the cache mode constants defined in TimberLoader.
     * @return bool|string The echoed output.
     */
    public static function render( $filenames, $data = array(), $expires = false, $cache_mode = Loader::CACHE_USE_DEFAULT ) {
        $output = self::fetch($filenames, $data, $expires, $cache_mode);
        echo $output;
        return $output;
    }
 
    /**
     * Render a string with Twig variables.
     *
     * @api
     * @example
     * ```php
     * $data = array(
     *     'username' => 'Jane Doe',
     * );
     *
     * Timber::render_string( 'Hi {{ username }}, I’m a string with a custom Twig variable', $data );
     * ```
     * @param string $string A string with Twig variables.
     * @param array  $data   An array of data to use in Twig template.
     * @return bool|string
     */
 * /mytheme/views/page-mypage.html.twig
 * (which will still route through this PHP file)
 * OR
 * /mytheme/page-mypage.php
 * (in which case you'll want to duplicate this file and save to the above path)
 */
 
$gantry = Gantry::instance();
 
/** @var Theme $theme */
$theme  = $gantry['theme'];
 
// We need to render contents of <head> before plugin content gets added.
$context              = Timber::get_context();
$context['page_head'] = $theme->render('partials/page_head.html.twig', $context);
 
$post            = Timber::query_post();
$context['post'] = $post;
 
Timber::render(['page-' . $post->post_name . '.html.twig', 'page.html.twig'], $context);
 
     */
    $template   = apply_filters( 'template_include', $template );
    $is_stringy = is_string( $template ) || ( is_object( $template ) && method_exists( $template, '__toString' ) );
    $template   = $is_stringy ? realpath( (string) $template ) : null;
    if (
        is_string( $template ) &&
        ( str_ends_with( $template, '.php' ) || str_ends_with( $template, '.html' ) ) &&
        is_file( $template ) &&
        is_readable( $template )
    ) {
        /**
         * Fires immediately before including the template.
         *
         * @since 6.9.0
         *
         * @param string $template The path of the template about to be included.
         */
        do_action( 'wp_before_include_template', $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
empty
empty
Key Value
SERVER_SOFTWARE Apache
REQUEST_URI /homepage/
PATH /usr/local/bin:/usr/bin:/bin
TEMP /tmp
TMP /tmp
TMPDIR /tmp
PWD /
HTTP_ACCEPT */*
HTTP_ACCEPT_ENCODING gzip, br
CONTENT_LENGTH 0
HTTP_HOST www.dutrition.com
HTTP_REFERER https://www.dutrition.com/homepage
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_RAY 9dbf5cfc299a3488-CMH
HTTP_CDN_LOOP cloudflare; loops=1
HTTP_CF_CONNECTING_IP 216.73.216.218
HTTP_CF_IPCOUNTRY US
HTTP_CF_VISITOR {\"scheme\":\"https\"}
HTTP_X_FORWARDED_PROTO https
HTTP_X_HTTPS 1
REDIRECT_UNIQUE_ID abS0DtImwXE2DCcVxvfoowAAAMs
REDIRECT_SCRIPT_URL /homepage/
REDIRECT_SCRIPT_URI https://www.dutrition.com/homepage/
REDIRECT_HTTP_AUTHORIZATION
REDIRECT_HTTPS on
REDIRECT_SSL_TLS_SNI www.dutrition.com
REDIRECT_STATUS 200
UNIQUE_ID abS0DtImwXE2DCcVxvfoowAAAMs
SCRIPT_URL /homepage/
SCRIPT_URI https://www.dutrition.com/homepage/
HTTP_AUTHORIZATION
HTTPS on
SSL_TLS_SNI www.dutrition.com
SERVER_SIGNATURE
SERVER_NAME www.dutrition.com
SERVER_ADDR 148.251.153.209
SERVER_PORT 443
REMOTE_ADDR 216.73.216.218
DOCUMENT_ROOT /home/dutrition/public_html
REQUEST_SCHEME https
CONTEXT_PREFIX
CONTEXT_DOCUMENT_ROOT /home/dutrition/public_html
SERVER_ADMIN [email protected]
SCRIPT_FILENAME /home/dutrition/public_html/index.php
REMOTE_PORT 51682
REDIRECT_URL /homepage/
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING
SCRIPT_NAME /index.php
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1773450254.8164
REQUEST_TIME 1773450254
empty
0. Whoops\Handler\PrettyPageHandler