TypeError
count(): Argument #1 ($value) must be of type Countable|array, false given TypeError thrown with message "count(): Argument #1 ($value) must be of type Countable|array, false given" Stacktrace: #40 TypeError in /srv/htdocs/wp-content/themes/asap/functions.php:4643 #39 modify_breadcrumb_schema in /wordpress/core/7.1.3/wp-includes/class-wp-hook.php:355 #38 WP_Hook:apply_filters in /wordpress/core/7.1.3/wp-includes/plugin.php:206 #37 apply_filters in /srv/htdocs/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php:145 #36 Yoast\WP\SEO\Generators\Schema_Generator:generate_graph in /srv/htdocs/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php:72 #35 Yoast\WP\SEO\Generators\Schema_Generator:generate in /srv/htdocs/wp-content/plugins/wordpress-seo/src/presentations/indexable-presentation.php:720 #34 Yoast\WP\SEO\Presentations\Indexable_Presentation:generate_schema in /srv/htdocs/wp-content/plugins/wordpress-seo/src/presentations/abstract-presentation.php:66 #33 Yoast\WP\SEO\Presentations\Abstract_Presentation:__get in /srv/htdocs/wp-content/plugins/wordpress-seo/src/presenters/schema-presenter.php:61 #32 Yoast\WP\SEO\Presenters\Schema_Presenter:get in /srv/htdocs/wp-content/plugins/wordpress-seo/src/presenters/schema-presenter.php:45 #31 Yoast\WP\SEO\Presenters\Schema_Presenter:present in /srv/htdocs/wp-content/plugins/wordpress-seo/src/integrations/front-end-integration.php:486 #30 Yoast\WP\SEO\Integrations\Front_End_Integration:present_head in /wordpress/core/7.1.3/wp-includes/class-wp-hook.php:353 #29 WP_Hook:apply_filters in /wordpress/core/7.1.3/wp-includes/class-wp-hook.php:377 #28 WP_Hook:do_action in /wordpress/core/7.1.3/wp-includes/plugin.php:523 #27 do_action in /srv/htdocs/wp-content/plugins/wordpress-seo/src/integrations/front-end-integration.php:457 #26 Yoast\WP\SEO\Integrations\Front_End_Integration:call_wpseo_head in /wordpress/core/7.1.3/wp-includes/class-wp-hook.php:353 #25 WP_Hook:apply_filters in /wordpress/core/7.1.3/wp-includes/class-wp-hook.php:377 #24 WP_Hook:do_action in /wordpress/core/7.1.3/wp-includes/plugin.php:523 #23 do_action in /wordpress/core/7.1.3/wp-includes/general-template.php:3441 #22 wp_head in /srv/htdocs/wp-content/plugins/timber-library/lib/Twig.php:296 #21 call_user_func_array in /srv/htdocs/wp-content/plugins/timber-library/lib/Twig.php:296 #20 Timber\Twig:exec_function in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php:497 #19 __TwigTemplate_a3a1b4523e1250c57e3cbf5d563cc0e8216ef2bd1a10614ec29afd95075cb098:doDisplay in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php:453 #18 Twig\Template:displayWithErrorHandling in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php:420 #17 Twig\Template:display in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php:497 #16 __TwigTemplate_789bb4e5f5a756e878c638b3f5e7324f585c71d5018f593aadfbe53f0f7f307c:block_html_head_container in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php:214 #15 Twig\Template:displayBlock in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php:497 #14 __TwigTemplate_789bb4e5f5a756e878c638b3f5e7324f585c71d5018f593aadfbe53f0f7f307c:doDisplay in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php:453 #13 Twig\Template:displayWithErrorHandling in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php:420 #12 Twig\Template:display in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php:497 #11 __TwigTemplate_0895e6466ad95b633cdd30abda2bc678c3ae017262a3cd6adae2f1a6a7cb445f:doDisplay in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php:453 #10 Twig\Template:displayWithErrorHandling in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php:420 #9 Twig\Template:display in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php:432 #8 Twig\Template:render in /srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/TemplateWrapper.php:47 #7 Twig\TemplateWrapper:render in /srv/htdocs/wp-content/plugins/timber-library/lib/Loader.php:79 #6 Timber\Loader:render in /srv/htdocs/wp-content/plugins/timber-library/lib/Timber.php:334 #5 Timber\Timber:compile in /srv/htdocs/wp-content/plugins/timber-library/lib/Timber.php:383 #4 Timber\Timber:fetch in /srv/htdocs/wp-content/plugins/timber-library/lib/Timber.php:410 #3 Timber\Timber:render in /srv/htdocs/wp-content/themes/asap/single-locationpage.php:24 #2 include in /wordpress/core/7.1.3/wp-includes/template-loader.php:132 #1 require_once in /wordpress/core/7.1.3/wp-blog-header.php:19 #0 require in /wordpress/core/7.1.3/index.php:17
Stack frames (41)
40
TypeError
…/wp-content/themes/asap/functions.php4643
39
modify_breadcrumb_schema
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php355
38
WP_Hook apply_filters
/wordpress/core/7.1.3/wp-includes/plugin.php206
37
apply_filters
…/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php145
36
Yoast\WP\SEO\Generators\Schema_Generator generate_graph
…/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php72
35
Yoast\WP\SEO\Generators\Schema_Generator generate
…/wp-content/plugins/wordpress-seo/src/presentations/indexable-presentation.php720
34
Yoast\WP\SEO\Presentations\Indexable_Presentation generate_schema
…/wp-content/plugins/wordpress-seo/src/presentations/abstract-presentation.php66
33
Yoast\WP\SEO\Presentations\Abstract_Presentation __get
…/wp-content/plugins/wordpress-seo/src/presenters/schema-presenter.php61
32
Yoast\WP\SEO\Presenters\Schema_Presenter get
…/wp-content/plugins/wordpress-seo/src/presenters/schema-presenter.php45
31
Yoast\WP\SEO\Presenters\Schema_Presenter present
…/wp-content/plugins/wordpress-seo/src/integrations/front-end-integration.php486
30
Yoast\WP\SEO\Integrations\Front_End_Integration present_head
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php353
29
WP_Hook apply_filters
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php377
28
WP_Hook do_action
/wordpress/core/7.1.3/wp-includes/plugin.php523
27
do_action
…/wp-content/plugins/wordpress-seo/src/integrations/front-end-integration.php457
26
Yoast\WP\SEO\Integrations\Front_End_Integration call_wpseo_head
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php353
25
WP_Hook apply_filters
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php377
24
WP_Hook do_action
/wordpress/core/7.1.3/wp-includes/plugin.php523
23
do_action
/wordpress/core/7.1.3/wp-includes/general-template.php3441
22
wp_head
…/wp-content/plugins/timber-library/lib/Twig.php296
21
call_user_func_array
…/wp-content/plugins/timber-library/lib/Twig.php296
20
Timber\Twig exec_function
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php497
19
__TwigTemplate_a3a1b4523e1250c57e3cbf5d563cc0e8216ef2bd1a10614ec29afd95075cb098 doDisplay
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php453
18
Twig\Template displayWithErrorHandling
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php420
17
Twig\Template display
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php497
16
__TwigTemplate_789bb4e5f5a756e878c638b3f5e7324f585c71d5018f593aadfbe53f0f7f307c block_html_head_container
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php214
15
Twig\Template displayBlock
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php497
14
__TwigTemplate_789bb4e5f5a756e878c638b3f5e7324f585c71d5018f593aadfbe53f0f7f307c doDisplay
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php453
13
Twig\Template displayWithErrorHandling
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php420
12
Twig\Template display
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php497
11
__TwigTemplate_0895e6466ad95b633cdd30abda2bc678c3ae017262a3cd6adae2f1a6a7cb445f doDisplay
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php453
10
Twig\Template displayWithErrorHandling
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php420
9
Twig\Template display
…/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php432
8
Twig\Template render
…/wp-content/plugins/timber-library/vendor/twig/twig/src/TemplateWrapper.php47
7
Twig\TemplateWrapper render
…/wp-content/plugins/timber-library/lib/Loader.php79
6
Timber\Loader render
…/wp-content/plugins/timber-library/lib/Timber.php334
5
Timber\Timber compile
…/wp-content/plugins/timber-library/lib/Timber.php383
4
Timber\Timber fetch
…/wp-content/plugins/timber-library/lib/Timber.php410
3
Timber\Timber render
…/wp-content/themes/asap/single-locationpage.php24
2
include
/wordpress/core/7.1.3/wp-includes/template-loader.php132
1
require_once
/wordpress/core/7.1.3/wp-blog-header.php19
0
require
/wordpress/core/7.1.3/index.php17
/srv/htdocs/wp-content/themes/asap/functions.php
        ]
    ];
    $breadcrumbs = $piece['itemListElement'];
    if ( is_tax('location') ) {
        $queried_object = get_queried_object();
        if($queried_object->parent == 0){
            array_splice( $breadcrumbs, 1, 0, [ $locations_breadcrumb ] );
        }else{
            array_splice( $breadcrumbs, 1, 0, [ $locations_breadcrumb ] );
        }
    }
 
    /* if location page*/
    if(is_singular( 'locationpage' )){
        $terms =get_the_terms($post->ID, 'location');
        $term_hierarchy = array();
 
        /* if location page less than 3 terms */
        $new_terms = [];
        if(count($terms)<3){
            foreach ($terms as $term) {
                if($term->parent!=0){
                     $new_terms[] = get_term_by('id',$term->parent,'location');
                }
            }
        }
        $terms = array_merge($terms, $new_terms);
 
        // Organize terms by parent-child relationship
        $taxonomy_list = array();
        $parent1 = -1;
        $parent2 = -1;
        foreach ($terms as $term) {
            if($term->parent==0){
                $taxonomy_list['parent'] = array(
                    'name'      => $term->name,
                    'parent_id' => $term->parent,
                    'term_id' => $term->term_id,
                    'link'=>get_term_link($term->term_id)
                );
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php
 
        $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.
     */
    public function do_action( $args ) {
/wordpress/core/7.1.3/wp-includes/plugin.php
        $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`.
/srv/htdocs/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php
            // If only a single graph piece was returned.
            if ( $graph_pieces !== false && \array_key_exists( '@type', $graph_pieces ) ) {
                $graph_pieces = [ $graph_pieces ];
            }
 
            if ( ! \is_array( $graph_pieces ) ) {
                continue;
            }
 
            foreach ( $graph_pieces as $graph_piece ) {
                /**
                 * Filter: 'wpseo_schema_<identifier>' - Allows changing graph piece output.
                 * This filter can be called with either an identifier or a block type (see `add_schema_blocks_graph_pieces()`).
                 *
                 * @param array                   $graph_piece            The graph piece to filter.
                 * @param Meta_Tags_Context       $context                A value object with context variables.
                 * @param Abstract_Schema_Piece   $graph_piece_generator  A value object with context variables.
                 * @param Abstract_Schema_Piece[] $graph_piece_generators A value object with context variables.
                 */
                $graph_piece = \apply_filters( 'wpseo_schema_' . $identifier, $graph_piece, $context, $graph_piece_generator, $graph_piece_generators );
                $graph_piece = $this->type_filter( $graph_piece, $identifier, $context, $graph_piece_generator, $graph_piece_generators );
                $graph_piece = $this->validate_type( $graph_piece );
 
                if ( \is_array( $graph_piece ) ) {
                    $graph[] = $graph_piece;
                }
            }
        }
 
        /**
         * Filter: 'wpseo_schema_graph' - Allows changing graph output.
         *
         * @param array             $graph   The graph to filter.
         * @param Meta_Tags_Context $context A value object with context variables.
         */
        $graph = \apply_filters( 'wpseo_schema_graph', $graph, $context );
 
        return $graph;
    }
 
/srv/htdocs/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php
        foreach ( \array_keys( $context->blocks ) as $block_type ) {
            /**
             * Filter: 'wpseo_pre_schema_block_type_<block-type>' - Allows hooking things to change graph output based on the blocks on the page.
             *
             * @param WP_Block_Parser_Block[] $blocks     All the blocks of this block type.
             * @param Meta_Tags_Context       $context    A value object with context variables.
             */
            \do_action( 'wpseo_pre_schema_block_type_' . $block_type, $context->blocks[ $block_type ], $context );
        }
 
        // Do a loop before everything else to inject the context and helpers.
        foreach ( $pieces as $piece ) {
            if ( \is_a( $piece, Abstract_Schema_Piece::class ) ) {
                $piece->context = $context;
                $piece->helpers = $this->helpers;
            }
        }
 
        $pieces_to_generate = $this->filter_graph_pieces_to_generate( $pieces );
        $graph              = $this->generate_graph( $pieces_to_generate, $context );
        $graph              = $this->add_schema_blocks_graph_pieces( $graph, $context );
        $graph              = $this->finalize_graph( $graph, $context );
 
        return [
            '@context' => 'https://schema.org',
            '@graph'   => $graph,
        ];
    }
 
    /**
     * Filters out any graph pieces that should not be generated.
     * (Using the `wpseo_schema_needs_<graph_piece_identifier>` series of filters).
     *
     * @param array $graph_pieces The current list of graph pieces that we want to generate.
     *
     * @return array The graph pieces to generate.
     */
    protected function filter_graph_pieces_to_generate( $graph_pieces ) {
        $pieces_to_generate = [];
        foreach ( $graph_pieces as $piece ) {
/srv/htdocs/wp-content/plugins/wordpress-seo/src/presentations/indexable-presentation.php
    }
 
    /**
     * Generates the source.
     *
     * @return array The source.
     */
    public function generate_source() {
        return [];
    }
 
    /**
     * Generates the schema for the page.
     *
     * @codeCoverageIgnore Wrapper method.
     *
     * @return array The Schema object.
     */
    public function generate_schema() {
        return $this->schema_generator->generate( $this->context );
    }
 
    /**
     * Generates the breadcrumbs for the page.
     *
     * @codeCoverageIgnore Wrapper method.
     *
     * @return array The breadcrumbs.
     */
    public function generate_breadcrumbs() {
        return $this->breadcrumbs_generator->generate( $this->context );
    }
 
    /**
     * Generates the estimated reading time.
     *
     * @codeCoverageIgnore Wrapper method.
     *
     * @return int|null The estimated reading time.
     */
/srv/htdocs/wp-content/plugins/wordpress-seo/src/presentations/abstract-presentation.php
        $presentation->is_prototype = false;
        return $presentation;
    }
 
    /**
     * Magic getter for lazy loading of generate functions.
     *
     * @param string $name The property to get.
     *
     * @return mixed The value if it could be generated.
     *
     * @throws Exception If there is no generator for the property.
     */
    public function __get( $name ) {
        if ( $this->is_prototype() ) {
            throw new Exception( 'Attempting property access on prototype presentation. Use Presentation::of( $data ) to get a model presentation.' );
        }
        $generator = "generate_$name";
        if ( \method_exists( $this, $generator ) ) {
            $this->{$name} = $this->$generator();
            return $this->{$name};
        }
        throw new Exception( "Property $name has no generator. Expected function $generator." );
    }
 
    /**
     * Magic isset for ensuring methods that have a generator are recognised.
     *
     * @codeCoverageIgnore Wrapper method.
     *
     * @param string $name The property to get.
     *
     * @return bool Whether or not there is a generator for the requested property.
     */
    public function __isset( $name ) {
        return \method_exists( $this, "generate_$name" );
    }
 
    /**
     * Returns `true` if this class is a prototype.
/srv/htdocs/wp-content/plugins/wordpress-seo/src/presenters/schema-presenter.php
         */
        \do_action( 'wpseo_json_ld' );
 
        $schema = $this->get();
        if ( \is_array( $schema ) ) {
            $output = WPSEO_Utils::format_json_encode( $schema );
            $output = \str_replace( "\n", \PHP_EOL . "\t", $output );
            return '<script type="application/ld+json" class="yoast-schema-graph">' . $output . '</script>';
        }
 
        return '';
    }
 
    /**
     * Gets the raw value of a presentation.
     *
     * @return array The raw value.
     */
    public function get() {
        return $this->presentation->schema;
    }
}
 
/srv/htdocs/wp-content/plugins/wordpress-seo/src/presenters/schema-presenter.php
            '_deprecated' => 'Please use the "wpseo_schema_*" filters to extend the Yoast SEO schema data - see the WPSEO_Schema class.',
        ];
 
        /**
         * Filter: 'wpseo_json_ld_output' - Allows disabling Yoast's schema output entirely.
         *
         * @param mixed  $deprecated If false or an empty array is returned, disable our output.
         * @param string $empty
         */
        $return = \apply_filters( 'wpseo_json_ld_output', $deprecated_data, '' );
        if ( $return === [] || $return === false ) {
            return '';
        }
 
        /**
         * Action: 'wpseo_json_ld' - Output Schema before the main schema from Yoast SEO is output.
         */
        \do_action( 'wpseo_json_ld' );
 
        $schema = $this->get();
        if ( \is_array( $schema ) ) {
            $output = WPSEO_Utils::format_json_encode( $schema );
            $output = \str_replace( "\n", \PHP_EOL . "\t", $output );
            return '<script type="application/ld+json" class="yoast-schema-graph">' . $output . '</script>';
        }
 
        return '';
    }
 
    /**
     * Gets the raw value of a presentation.
     *
     * @return array The raw value.
     */
    public function get() {
        return $this->presentation->schema;
    }
}
 
/srv/htdocs/wp-content/plugins/wordpress-seo/src/integrations/front-end-integration.php
     */
    public function present_head() {
        $context    = $this->context_memoizer->for_current_page();
        $presenters = $this->get_presenters( $context->page_type, $context );
 
        /**
         * Filter 'wpseo_frontend_presentation' - Allow filtering the presentation used to output our meta values.
         *
         * @param Indexable_Presentation $presentation The indexable presentation.
         * @param Meta_Tags_Context    $context      The meta tags context for the current page.
         */
        $presentation = \apply_filters( 'wpseo_frontend_presentation', $context->presentation, $context );
 
        echo \PHP_EOL;
        foreach ( $presenters as $presenter ) {
            $presenter->presentation = $presentation;
            $presenter->helpers      = $this->helpers;
            $presenter->replace_vars = $this->replace_vars;
 
            $output = $presenter->present();
            if ( ! empty( $output ) ) {
                // phpcs:ignore WordPress.Security.EscapeOutput -- Presenters are responsible for correctly escaping their output.
                echo "\t" . $output . \PHP_EOL;
            }
        }
        echo \PHP_EOL . \PHP_EOL;
    }
 
    /**
     * Returns all presenters for this page.
     *
     * @param string                 $page_type The page type.
     * @param Meta_Tags_Context|null $context   The meta tags context for the current page.
     *
     * @return Abstract_Indexable_Presenter[] The presenters.
     */
    public function get_presenters( $page_type, $context = null ) {
        $context ??= $this->context_memoizer->for_current_page();
 
        $needed_presenters = $this->get_needed_presenters( $page_type );
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php
 
        $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.
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php
        } 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 ] );
/wordpress/core/7.1.3/wp-includes/plugin.php
    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 ) {
/srv/htdocs/wp-content/plugins/wordpress-seo/src/integrations/front-end-integration.php
        }
 
        return \array_diff( $presenters, [ 'Yoast\\WP\\SEO\\Presenters\\Robots_Presenter' ] );
    }
 
    /**
     * Presents the head in the front-end. Resets wp_query if it's not the main query.
     *
     * @codeCoverageIgnore It just calls a WordPress function.
     *
     * @return void
     */
    public function call_wpseo_head() {
        global $wp_query;
 
        $old_wp_query = $wp_query;
        // phpcs:ignore WordPress.WP.DiscouragedFunctions.wp_reset_query_wp_reset_query -- Reason: The recommended function, wp_reset_postdata, doesn't reset wp_query.
        \wp_reset_query();
 
        \do_action( 'wpseo_head' );
 
        // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited -- Reason: we have to restore the query.
        $GLOBALS['wp_query'] = $old_wp_query;
    }
 
    /**
     * Echoes all applicable presenters for a page.
     *
     * @return void
     */
    public function present_head() {
        $context    = $this->context_memoizer->for_current_page();
        $presenters = $this->get_presenters( $context->page_type, $context );
 
        /**
         * Filter 'wpseo_frontend_presentation' - Allow filtering the presentation used to output our meta values.
         *
         * @param Indexable_Presentation $presentation The indexable presentation.
         * @param Meta_Tags_Context    $context      The meta tags context for the current page.
         */
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php
 
        $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.
/wordpress/core/7.1.3/wp-includes/class-wp-hook.php
        } 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 ] );
/wordpress/core/7.1.3/wp-includes/plugin.php
    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 ) {
/wordpress/core/7.1.3/wp-includes/general-template.php
     * @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.
/srv/htdocs/wp-content/plugins/timber-library/lib/Twig.php
        if ( is_array($arr) ) {
            return $arr;
        }
        $arr = array($arr);
        return $arr;
    }
 
    /**
     *
     *
     * @param string  $function_name
     * @return mixed
     */
    public function exec_function( $function_name ) {
        $args = func_get_args();
        array_shift($args);
        if ( is_string($function_name) ) {
            $function_name = trim($function_name);
        }
        return call_user_func_array($function_name, ($args));
    }
 
    /**
     *
     *
     * @param string  $content
     * @return string
     */
    public function twig_pretags( $content ) {
        return preg_replace_callback('|<pre.*>(.*)</pre|isU', array(&$this, 'convert_pre_entities'), $content);
    }
 
    /**
     *
     *
     * @param array   $matches
     * @return string
     */
    public function convert_pre_entities( $matches ) {
        return str_replace($matches[1], htmlentities($matches[1]), $matches[0]);
/srv/htdocs/wp-content/plugins/timber-library/lib/Twig.php
        if ( is_array($arr) ) {
            return $arr;
        }
        $arr = array($arr);
        return $arr;
    }
 
    /**
     *
     *
     * @param string  $function_name
     * @return mixed
     */
    public function exec_function( $function_name ) {
        $args = func_get_args();
        array_shift($args);
        if ( is_string($function_name) ) {
            $function_name = trim($function_name);
        }
        return call_user_func_array($function_name, ($args));
    }
 
    /**
     *
     *
     * @param string  $content
     * @return string
     */
    public function twig_pretags( $content ) {
        return preg_replace_callback('|<pre.*>(.*)</pre|isU', array(&$this, 'convert_pre_entities'), $content);
    }
 
    /**
     *
     *
     * @param array   $matches
     * @return string
     */
    public function convert_pre_entities( $matches ) {
        return str_replace($matches[1], htmlentities($matches[1]), $matches[0]);
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php
                } else {
                    $source = $loader->getSourceContext($name);
                }
 
                $content = $this->compileSource($source);
 
                if ($this->bcWriteCacheFile) {
                    $this->writeCacheFile($key, $content);
                } else {
                    $this->cache->write($key, $content);
                    $this->cache->load($key);
                }
 
                if (!class_exists($mainCls, false)) {
                    /* Last line of defense if either $this->bcWriteCacheFile was used,
                     * $this->cache is implemented as a no-op or we have a race condition
                     * where the cache was cleared between the above calls to write to and load from
                     * the cache.
                     */
                    eval('?>'.$content);
                }
            }
 
            if (!class_exists($cls, false)) {
                throw new RuntimeError(sprintf('Failed to load Twig template "%s", index "%s": cache might be corrupted.', $name, $index), -1, $source);
            }
        }
 
        if (!$this->runtimeInitialized) {
            $this->initRuntime();
        }
 
        return $this->loadedTemplates[$cls] = new $cls($this);
    }
 
    /**
     * Creates a template from source.
     *
     * This method should not be used as a generic way to load templates.
     *
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } 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;
        }
    }
 
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php
    {
        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 (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php
                } else {
                    $source = $loader->getSourceContext($name);
                }
 
                $content = $this->compileSource($source);
 
                if ($this->bcWriteCacheFile) {
                    $this->writeCacheFile($key, $content);
                } else {
                    $this->cache->write($key, $content);
                    $this->cache->load($key);
                }
 
                if (!class_exists($mainCls, false)) {
                    /* Last line of defense if either $this->bcWriteCacheFile was used,
                     * $this->cache is implemented as a no-op or we have a race condition
                     * where the cache was cleared between the above calls to write to and load from
                     * the cache.
                     */
                    eval('?>'.$content);
                }
            }
 
            if (!class_exists($cls, false)) {
                throw new RuntimeError(sprintf('Failed to load Twig template "%s", index "%s": cache might be corrupted.', $name, $index), -1, $source);
            }
        }
 
        if (!$this->runtimeInitialized) {
            $this->initRuntime();
        }
 
        return $this->loadedTemplates[$cls] = new $cls($this);
    }
 
    /**
     * Creates a template from source.
     *
     * This method should not be used as a generic way to load templates.
     *
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php
 
        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);
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php
                } else {
                    $source = $loader->getSourceContext($name);
                }
 
                $content = $this->compileSource($source);
 
                if ($this->bcWriteCacheFile) {
                    $this->writeCacheFile($key, $content);
                } else {
                    $this->cache->write($key, $content);
                    $this->cache->load($key);
                }
 
                if (!class_exists($mainCls, false)) {
                    /* Last line of defense if either $this->bcWriteCacheFile was used,
                     * $this->cache is implemented as a no-op or we have a race condition
                     * where the cache was cleared between the above calls to write to and load from
                     * the cache.
                     */
                    eval('?>'.$content);
                }
            }
 
            if (!class_exists($cls, false)) {
                throw new RuntimeError(sprintf('Failed to load Twig template "%s", index "%s": cache might be corrupted.', $name, $index), -1, $source);
            }
        }
 
        if (!$this->runtimeInitialized) {
            $this->initRuntime();
        }
 
        return $this->loadedTemplates[$cls] = new $cls($this);
    }
 
    /**
     * Creates a template from source.
     *
     * This method should not be used as a generic way to load templates.
     *
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } 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;
        }
    }
 
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php
    {
        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 (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Environment.php
                } else {
                    $source = $loader->getSourceContext($name);
                }
 
                $content = $this->compileSource($source);
 
                if ($this->bcWriteCacheFile) {
                    $this->writeCacheFile($key, $content);
                } else {
                    $this->cache->write($key, $content);
                    $this->cache->load($key);
                }
 
                if (!class_exists($mainCls, false)) {
                    /* Last line of defense if either $this->bcWriteCacheFile was used,
                     * $this->cache is implemented as a no-op or we have a race condition
                     * where the cache was cleared between the above calls to write to and load from
                     * the cache.
                     */
                    eval('?>'.$content);
                }
            }
 
            if (!class_exists($cls, false)) {
                throw new RuntimeError(sprintf('Failed to load Twig template "%s", index "%s": cache might be corrupted.', $name, $index), -1, $source);
            }
        }
 
        if (!$this->runtimeInitialized) {
            $this->initRuntime();
        }
 
        return $this->loadedTemplates[$cls] = new $cls($this);
    }
 
    /**
     * Creates a template from source.
     *
     * This method should not be used as a generic way to load templates.
     *
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } 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;
        }
    }
 
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php
    {
        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 (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } catch (\Throwable $e) {
            while (ob_get_level() > $level) {
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/Template.php
    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 (\Exception $e) {
            while (ob_get_level() > $level) {
                ob_end_clean();
            }
 
            throw $e;
        } 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 {
/srv/htdocs/wp-content/plugins/timber-library/vendor/twig/twig/src/TemplateWrapper.php
     * @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
     *
     * @return string The rendered template
     */
    public function render($context = [])
    {
        // 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_num_args() > 1 ? func_get_arg(1) : []);
    }
 
    /**
     * Displays the template.
     *
     * @param array $context An array of parameters to pass to the template
     */
    public function display($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_num_args() > 1 ? func_get_arg(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
     *
/srv/htdocs/wp-content/plugins/timber-library/lib/Loader.php
 
        $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.
     */
/srv/htdocs/wp-content/plugins/timber-library/lib/Timber.php
        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',
     * );
/srv/htdocs/wp-content/plugins/timber-library/lib/Timber.php
        $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
/srv/htdocs/wp-content/plugins/timber-library/lib/Timber.php
     * 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
     */
/srv/htdocs/wp-content/themes/asap/single-locationpage.php
 * Methods for TimberHelper can be found in the /lib sub-directory
 *
 * @package  WordPress
 * @subpackage  Timber
 * @since    Timber 0.1
 */
 
use Timber\Post;
 
$context         = get_timber_context();
$timber_post     = Timber::get_post();
$context['post'] = $timber_post;
$context['search_url'] = get_permalink(get_field('search_page_url', 'options'));
$product_category = str_replace(" ", "_", get_field('product_category'));
$context['product_category'] = strtolower($product_category);
 
if ( post_password_required( $timber_post->ID ) ) {
    Timber::render( 'single-password.twig', $context );
} else {
    Timber::render( array( 'single-' . $timber_post->ID . '.twig', 'single-' . $timber_post->post_type . '.twig', 'single-' . $timber_post->slug . '.twig', 'single.twig' ), $context );
}
/wordpress/core/7.1.3/wp-includes/template-loader.php
     */
    $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;
}
 
/wordpress/core/7.1.3/wp-blog-header.php
<?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';
 
}
 
/wordpress/core/7.1.3/index.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 nginx
REQUEST_URI /location/porta-potty-rentals-in-farmville/
HTTP_X_VALID_CERTIFICATE 1
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_X_INFERRED_ASN 16509
HTTP_X_INFERRED_CITY_NAME Columbus
HTTP_X_INFERRED_SUBDIVISION_CODE \"\"
HTTP_X_INFERRED_CONTINENT_CODE NA
HTTP_X_INFERRED_COUNTRY_CODE US
HTTP_X_WBA_STATUS -/
HTTP_X_EDGE_BLACKBOX_SCORE 0.0838
HTTP_X_HTTP2_FINGERPRINT 2:0;4:2097152;5:16384;6:16384|5177345|m,s,a,p
HTTP_X_JA4T_LITE_HASH 62727_2-4-8-1-3_7
HTTP_X_JA4T_HASH 62727_2-4-8-1-3_1460_7
HTTP_X_TCP_RTT_MIN 8.3
HTTP_X_TCP_RTT_AVG 8.337
HTTP_X_JA4_HASH_STABLE t13d1010h2_61a7ad8aa9b6_6a7d638fc319
HTTP_X_JA4_HASH t13d1011h2_61a7ad8aa9b6_3fcd1a44f3e3
HTTP_ACCEPT */*
HTTP_ACCEPT_ENCODING br
HTTP_X_FORWARDED_HTTP2 h2
HTTP_X_FORWARDED_SERVER_PROTOCOL HTTP/2.0
HTTP_X_A8C_EDGE_DC mdw
HTTP_X_IP_PROXY_TYPE SES
HTTP_X_A8C_REQUEST_ID f70b2e3802169e9fbf9ef7d47dd7cf43
HTTP_X_JA3_HASH 53d9b0a2c0b81896748e884c5dc66362
HTTP_X_SUPPORTLOGIN yes
HTTP_X_WPLOGIN yes
HTTP_X_FORWARDED_PROTO https
HTTP_X_FORWARDED_PORT 443
HTTP_X_FORWARDED_FOR 216.73.217.175
HTTP_HOST www.asapmarketplace.com
PRESSABLE_PROXIED_REQUEST 0
A8C_PROXIED_REQUEST 0
ATOMIC_SITE_OPCACHE_MEMORY_MB 0
SCRIPT_FILENAME /srv/htdocs/__wp__/index.php
DOCUMENT_ROOT /srv/htdocs
GATEWAY_INTERFACE CGI/1.1
GEOIP_COUNTRY_CODE US
SERVER_PROTOCOL HTTP/1.1
REDIRECT_URL /location/porta-potty-rentals-in-farmville/
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING
SERVER_ADDR 103.115.10.147
SERVER_NAME www.asapmarketplace.com
SERVER_PORT 443
REMOTE_PORT 34808
REMOTE_ADDR 216.73.217.175
DOCUMENT_URI /__wp__/index.php
SCRIPT_NAME /__wp__/index.php
FCGI_ROLE RESPONDER
PHP_SELF /__wp__/index.php
REQUEST_TIME_FLOAT 1792469428.6809
REQUEST_TIME 1792469428
WP_DIR /scripts/../srv/htdocs/__wp__/
HTTPS on
ENVIRONMENT production
SITE_URL https://asapmarketplace.mpathdev.com/
HOME_URL https://asapmarketplace.mpathdev.com/
GOOGLE_MAPS_API_KEY AIzaSyA2s6supKf8cbVia0Jf0WE5QCnHZ9KBAmA
Key Value
HTTP_X_VALID_CERTIFICATE 1
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_X_INFERRED_ASN 16509
HTTP_X_INFERRED_CITY_NAME Columbus
HTTP_X_INFERRED_SUBDIVISION_CODE ""
HTTP_X_INFERRED_CONTINENT_CODE NA
HTTP_X_INFERRED_COUNTRY_CODE US
HTTP_X_WBA_STATUS -/
HTTP_X_EDGE_BLACKBOX_SCORE 0.0838
HTTP_X_HTTP2_FINGERPRINT 2:0;4:2097152;5:16384;6:16384|5177345|m,s,a,p
HTTP_X_JA4T_LITE_HASH 62727_2-4-8-1-3_7
HTTP_X_JA4T_HASH 62727_2-4-8-1-3_1460_7
HTTP_X_TCP_RTT_MIN 8.3
HTTP_X_TCP_RTT_AVG 8.337
HTTP_X_JA4_HASH_STABLE t13d1010h2_61a7ad8aa9b6_6a7d638fc319
HTTP_X_JA4_HASH t13d1011h2_61a7ad8aa9b6_3fcd1a44f3e3
HTTP_ACCEPT */*
HTTP_ACCEPT_ENCODING br
HTTP_X_FORWARDED_HTTP2 h2
HTTP_X_FORWARDED_SERVER_PROTOCOL HTTP/2.0
HTTP_X_A8C_EDGE_DC mdw
HTTP_X_IP_PROXY_TYPE SES
HTTP_X_A8C_REQUEST_ID f70b2e3802169e9fbf9ef7d47dd7cf43
HTTP_X_JA3_HASH 53d9b0a2c0b81896748e884c5dc66362
HTTP_X_SUPPORTLOGIN yes
HTTP_X_WPLOGIN yes
HTTP_X_FORWARDED_PROTO https
HTTP_X_FORWARDED_PORT 443
HTTP_X_FORWARDED_FOR 216.73.217.175
HTTP_HOST www.asapmarketplace.com
PRESSABLE_PROXIED_REQUEST 0
A8C_PROXIED_REQUEST 0
ATOMIC_SITE_OPCACHE_MEMORY_MB 0
SSL_ENABLED false
SCRIPT_FILENAME /srv/htdocs/__wp__/index.php
DOCUMENT_ROOT /srv/htdocs
GATEWAY_INTERFACE CGI/1.1
SERVER_SOFTWARE nginx
GEOIP_COUNTRY_CODE US
SERVER_PROTOCOL HTTP/1.1
REDIRECT_URL /location/porta-potty-rentals-in-farmville/
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHOD GET
QUERY_STRING
SERVER_ADDR 103.115.10.147
SERVER_NAME www.asapmarketplace.com
SERVER_PORT 8089
REMOTE_PORT 34808
REMOTE_ADDR 192.0.98.111
DOCUMENT_URI /__wp__/index.php
REQUEST_URI /location/porta-potty-rentals-in-farmville/
SCRIPT_NAME /__wp__/index.php
FCGI_ROLE RESPONDER
PHP_SELF /__wp__/index.php
REQUEST_TIME_FLOAT 1792469428.6809
REQUEST_TIME 1792469428
ENVIRONMENT production
SITE_URL https://asapmarketplace.mpathdev.com/
HOME_URL https://asapmarketplace.mpathdev.com/
GOOGLE_MAPS_API_KEY AIzaSyA2s6supKf8cbVia0Jf0WE5QCnHZ9KBAmA
0. Whoops\Handler\PrettyPageHandler