Whoops \ Exception \ ErrorException (E_WARNING)
Attempt to read property "label" on null Whoops\Exception\ErrorException thrown with message "Attempt to read property "label" on null" Stacktrace: #9 Whoops\Exception\ErrorException in /var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/inc/wp-generals.php:61 #8 Whoops\Run:handleError in /var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/inc/wp-generals.php:61 #7 nav_breadcrumb in /var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/template-parts/header-banner.php:27 #6 require in /var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/template.php:812 #5 load_template in /var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/template.php:745 #4 locate_template in /var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/general-template.php:206 #3 get_template_part in /var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/archive.php:14 #2 include in /var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/template-loader.php:106 #1 require_once in /var/www/vhosts/che.de/indikatorenportal.che.de/wp-blog-header.php:19 #0 require in /var/www/vhosts/che.de/indikatorenportal.che.de/index.php:17
Stack frames (10)
9
Whoops\Exception\ErrorException
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/inc/wp-generals.php61
8
Whoops\Run handleError
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/inc/wp-generals.php61
7
nav_breadcrumb
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/template-parts/header-banner.php27
6
require
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/template.php812
5
load_template
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/template.php745
4
locate_template
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/general-template.php206
3
get_template_part
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/archive.php14
2
include
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/template-loader.php106
1
require_once
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-blog-header.php19
0
require
/var/www/vhosts/che.de/indikatorenportal.che.de/index.php17
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/inc/wp-generals.php
        } elseif ( is_single() && !is_attachment() ) {
            if ( get_post_type() != 'post' ) {
                $post_type = get_post_type_object(get_post_type());
                $slug = $post_type->rewrite;
                if(!empty($post->post_parent)){
                    echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->label . '</a> ' . $delimiter . ' ';
                    echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/' . get_the_title($post->post_parent) . '/">' . get_the_title($post->post_parent) . '</a> ' . $delimiter . ' ';
 
                }else{
                    echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->label. '</a> ' . $delimiter . ' ';
                }                
                echo $before . get_the_title() . $after;
                } else {
                    $cat = get_the_category(); $cat = $cat[0];
                    echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
                    echo $before . get_the_title() . $after;
                }
        } elseif( is_archive() ) {
            $post_type = get_post_type_object(get_post_type());
            echo $post_type->label;
 
        } elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() && !is_search() ) {
            $post_type = get_post_type_object(get_post_type());
            echo $before . $post_type->labels->singular_name . $after;
 
        } elseif ( is_attachment() ) {
            $parent = get_post($post->post_parent);
            $cat = get_the_category($parent->ID); $cat = $cat[0];
            echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
            echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $delimiter . ' ';
            echo $before . get_the_title() . $after;
 
        } elseif ( is_page() && !$post->post_parent ) {
            echo $before . get_the_title() . $after;
 
        } elseif ( is_page() && $post->post_parent ) {
            $parent_id = $post->post_parent;
            $breadcrumbs = array();
            while ($parent_id) {
                $page = get_page($parent_id);
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/inc/wp-generals.php
        } elseif ( is_single() && !is_attachment() ) {
            if ( get_post_type() != 'post' ) {
                $post_type = get_post_type_object(get_post_type());
                $slug = $post_type->rewrite;
                if(!empty($post->post_parent)){
                    echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->label . '</a> ' . $delimiter . ' ';
                    echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/' . get_the_title($post->post_parent) . '/">' . get_the_title($post->post_parent) . '</a> ' . $delimiter . ' ';
 
                }else{
                    echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->label. '</a> ' . $delimiter . ' ';
                }                
                echo $before . get_the_title() . $after;
                } else {
                    $cat = get_the_category(); $cat = $cat[0];
                    echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
                    echo $before . get_the_title() . $after;
                }
        } elseif( is_archive() ) {
            $post_type = get_post_type_object(get_post_type());
            echo $post_type->label;
 
        } elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() && !is_search() ) {
            $post_type = get_post_type_object(get_post_type());
            echo $before . $post_type->labels->singular_name . $after;
 
        } elseif ( is_attachment() ) {
            $parent = get_post($post->post_parent);
            $cat = get_the_category($parent->ID); $cat = $cat[0];
            echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
            echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $delimiter . ' ';
            echo $before . get_the_title() . $after;
 
        } elseif ( is_page() && !$post->post_parent ) {
            echo $before . get_the_title() . $after;
 
        } elseif ( is_page() && $post->post_parent ) {
            $parent_id = $post->post_parent;
            $breadcrumbs = array();
            while ($parent_id) {
                $page = get_page($parent_id);
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/template-parts/header-banner.php
 
<div class="header-banner">
  <div class="container">
      <?php if(is_404()):?>
        <h1 class="page-title">Fehler 404</h1>
      <?php elseif(is_search()):?>
        <h1 class="page-title"><?php printf( esc_html__( 'Search Results for: %s', 'indikatorenportal' ), '<span>' . get_search_query() . '</span>' );?></h1>
      <?php elseif(is_post_type_archive()):?>
        <h1 class="page-title"><?php post_type_archive_title();?></h1>
      <?php elseif(get_post_type() == 'prozessschritt'):?>
        <h1 class="page-title"><?php echo 'Prozessschritt ' . get_the_title();?></h1>
      <?php elseif(get_post_type() == 'facette'):?>
        <h1 class="page-title"><?php echo 'Facette ' . get_the_title();?></h1>
      <?php elseif(get_post_type() == 'leistungsbereich'):?>
        <h1 class="page-title"><?php echo 'Leistungsbereich ' . get_the_title();?></h1>
      <?php else:?>
        <h1 class="page-title"><?php single_post_title();?></h1>
      <?php endif;?>
      <div class="breadcrumbs">
        <?php if (function_exists('nav_breadcrumb')) nav_breadcrumb(); ?>
      </div>
 
  </div>
</div>
 
<style>
  .header-banner{
    padding-top: var(--wp--custom--spacing--x-large);
    padding-bottom: var(--wp--custom--spacing--x-large);
    background: var(--wp--custom--color--header-banner-bg);
  }
  .header-banner .container{
    margin-top: 0px;
  }
 
  .header-banner .breadcrumbs{
    font-size: 18px;
  }
 
  .header-banner .breadcrumbs a{
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/template.php
 
    if ( isset( $s ) ) {
        $s = esc_attr( $s );
    }
 
    /**
     * Fires before a template file is loaded.
     *
     * @since 6.1.0
     *
     * @param string $_template_file The full path to the template file.
     * @param bool   $load_once      Whether to require_once or require.
     * @param array  $args           Additional arguments passed to the template.
     */
    do_action( 'wp_before_load_template', $_template_file, $load_once, $args );
 
    if ( $load_once ) {
        require_once $_template_file;
    } else {
        require $_template_file;
    }
 
    /**
     * Fires after a template file is loaded.
     *
     * @since 6.1.0
     *
     * @param string $_template_file The full path to the template file.
     * @param bool   $load_once      Whether to require_once or require.
     * @param array  $args           Additional arguments passed to the template.
     */
    do_action( 'wp_after_load_template', $_template_file, $load_once, $args );
}
 
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/template.php
 
    $located = '';
    foreach ( (array) $template_names as $template_name ) {
        if ( ! $template_name ) {
            continue;
        }
        if ( file_exists( $wp_stylesheet_path . '/' . $template_name ) ) {
            $located = $wp_stylesheet_path . '/' . $template_name;
            break;
        } elseif ( $is_child_theme && file_exists( $wp_template_path . '/' . $template_name ) ) {
            $located = $wp_template_path . '/' . $template_name;
            break;
        } elseif ( file_exists( ABSPATH . WPINC . '/theme-compat/' . $template_name ) ) {
            $located = ABSPATH . WPINC . '/theme-compat/' . $template_name;
            break;
        }
    }
 
    if ( $load && '' !== $located ) {
        load_template( $located, $load_once, $args );
    }
 
    return $located;
}
 
/**
 * Requires the template file with WordPress environment.
 *
 * The globals are set up for the template file to ensure that the WordPress
 * environment is available from within the function. The query variables are
 * also available.
 *
 * @since 1.5.0
 * @since 5.5.0 The `$args` parameter was added.
 *
 * @global array      $posts
 * @global WP_Post    $post          Global post object.
 * @global bool       $wp_did_header
 * @global WP_Query   $wp_query      WordPress Query object.
 * @global WP_Rewrite $wp_rewrite    WordPress rewrite component.
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/general-template.php
        $templates[] = "{$slug}-{$name}.php";
    }
 
    $templates[] = "{$slug}.php";
 
    /**
     * Fires before an attempt is made to locate and load a template part.
     *
     * @since 5.2.0
     * @since 5.5.0 The `$args` parameter was added.
     *
     * @param string   $slug      The slug name for the generic template.
     * @param string   $name      The name of the specialized template or an empty
     *                            string if there is none.
     * @param string[] $templates Array of template files to search for, in order.
     * @param array    $args      Additional arguments passed to the template.
     */
    do_action( 'get_template_part', $slug, $name, $templates, $args );
 
    if ( ! locate_template( $templates, true, false, $args ) ) {
        return false;
    }
}
 
/**
 * Displays search form.
 *
 * Will first attempt to locate the searchform.php file in either the child or
 * the parent, then load it. If it doesn't exist, then the default search form
 * will be displayed. The default search form is HTML, which will be displayed.
 * There is a filter applied to the search form HTML in order to edit or replace
 * it. The filter is {@see 'get_search_form'}.
 *
 * This function is primarily used by themes which want to hardcode the search
 * form into the sidebar and also by the search widget in WordPress.
 *
 * There is also an action that is called whenever the function is run called,
 * {@see 'pre_get_search_form'}. This can be useful for outputting JavaScript that the
 * search relies on or various formatting that applies to the beginning of the
 * search. To give a few examples of what it can be used for.
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-content/themes/indikatorenportal/archive.php
<?php
/**
 * The template for displaying archive pages
 *
 * @link https://developer.wordpress.org/themes/basics/template-hierarchy/
 *
 * @package indikatorenportal
 */
 
get_header();
?>
 
    <main id="primary" class="site-main">
        <?php get_template_part('template-parts/header-banner');?>
        <div class="container">
            <div class="row">
 
                <?php if ( have_posts() ) : ?>
 
                    <?php
                    /* Start the Loop */
                    while ( have_posts() ) :
                        the_post();
 
                        /*
                         * Include the Post-Type-specific template for the content.
                         * If you want to override this in a child theme, then include a file
                         * called content-___.php (where ___ is the Post Type name) and that will be used instead.
                         */
                        get_template_part( 'template-parts/archive-element', get_post_type() );
 
                    endwhile;
 
                    the_posts_navigation();
 
                else :
 
                    get_template_part( 'template-parts/content', 'none' );
 
                endif;
/var/www/vhosts/che.de/indikatorenportal.che.de/wp-includes/template-loader.php
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
/var/www/vhosts/che.de/indikatorenportal.che.de/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';
 
}
 
/var/www/vhosts/che.de/indikatorenportal.che.de/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:

Key Value
query_vars Array ( [author_name] => hachmeister )
query_string author_name=hachmeister
request author/hachmeister
matched_rule author/([^/]+)/?$
matched_query author_name=hachmeister
did_permalink 1
Key Value
query Array ( [author_name] => hachmeister )
query_vars Array ( [author_name] => hachmeister [author] => 2 [cache_results] => 1 [update_post_term_cache] => 1 [lazy_load_term_meta] => 1 [update_post_meta_cache] => 1 [posts_per_page] => 10 [comments_per_page] => 50 [order] => DESC )
tax_query WP_Tax_Query Object ( [queries] => Array ( ) [relation] => AND [table_aliases:protected] => Array ( ) [queried_terms] => Array ( ) [primary_table] => cqK7J_posts [primary_id_column] => ID )
meta_query WP_Meta_Query Object ( [queries] => Array ( ) [relation] => [meta_table] => [meta_id_column] => [primary_table] => [primary_id_column] => [table_aliases:protected] => Array ( ) [clauses:protected] => Array ( ) [has_or_relation:protected] => )
queried_object WP_User Object ( [data] => stdClass Object ( [ID] => 2 [user_login] => hachmeister [user_pass] => $P$BpSrbCzC5Zc3DhH6fR9zzDuW4SlE4j. [user_nicename] => hachmeister [user_email] => Cort-Denis.Hachmeister@CHE.de [user_url] => [user_registered] => 2022-03-30 10:32:24 [user_activation_key] => [user_status] => 0 [display_name] => Cort-Denis Hachmeister ) [ID] => 2 [caps] => Array ( [editor] => 1 ) [cap_key] => cqK7J_capabilities [roles] => Array ( [0] => editor ) [allcaps] => Array ( [moderate_comments] => 1 [manage_categories] => 1 [manage_links] => 1 [upload_files] => 1 [unfiltered_html] => 1 [edit_posts] => 1 [edit_others_posts] => 1 [edit_published_posts] => 1 [publish_posts] => 1 [edit_pages] => 1 [read] => 1 [level_7] => 1 [level_6] => 1 [level_5] => 1 [level_4] => 1 [level_3] => 1 [level_2] => 1 [level_1] => 1 [level_0] => 1 [edit_others_pages] => 1 [edit_published_pages] => 1 [publish_pages] => 1 [delete_pages] => 1 [delete_others_pages] => 1 [delete_published_pages] => 1 [delete_posts] => 1 [delete_others_posts] => 1 [delete_published_posts] => 1 [delete_private_posts] => 1 [edit_private_posts] => 1 [read_private_posts] => 1 [delete_private_pages] => 1 [edit_private_pages] => 1 [read_private_pages] => 1 [edit_theme_options] => 1 [editor] => 1 ) [filter] => [site_id:WP_User:private] => 1 )
queried_object_id 2
request SELECT SQL_CALC_FOUND_ROWS cqK7J_posts.ID FROM cqK7J_posts WHERE 1=1 AND (cqK7J_posts.post_author = 2) AND ((cqK7J_posts.post_type = 'post' AND (cqK7J_posts.post_status = 'publish'))) ORDER BY cqK7J_posts.post_date DESC LIMIT 0, 10
current_post -1
before_loop 1
current_comment -1
is_archive 1
is_author 1
empty
empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE Apache
REQUEST_URI /author/hachmeister/
USER che
HOME /var/www/vhosts/che.de
SCRIPT_NAME /index.php
QUERY_STRING
REQUEST_METHOD GET
SERVER_PROTOCOL HTTP/1.0
GATEWAY_INTERFACE CGI/1.1
REDIRECT_URL /author/hachmeister/
REMOTE_PORT 36308
SCRIPT_FILENAME /var/www/vhosts/che.de/indikatorenportal.che.de/index.php
SERVER_ADMIN [no address given]
CONTEXT_DOCUMENT_ROOT /var/www/vhosts/che.de/indikatorenportal.che.de
CONTEXT_PREFIX
REQUEST_SCHEME https
DOCUMENT_ROOT /var/www/vhosts/che.de/indikatorenportal.che.de
REMOTE_ADDR 3.22.240.53
SERVER_PORT 443
SERVER_ADDR 85.214.160.178
SERVER_NAME indikatorenportal.che.de
SERVER_SIGNATURE <address>Apache Server at indikatorenportal.che.de Port 443</address>
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
HTTP_ACCEPT_ENCODING gzip, br, zstd, deflate
HTTP_USER_AGENT Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT */*
HTTP_CONNECTION close
HTTP_X_ACCEL_INTERNAL /internal-nginx-static-location
HTTP_X_REAL_IP 3.22.240.53
HTTP_HOST indikatorenportal.che.de
proxy-nokeepalive 1
HTTPS on
PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY 0
PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY 0
HTTP_AUTHORIZATION
REDIRECT_STATUS 200
REDIRECT_HTTPS on
REDIRECT_PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY 0
REDIRECT_PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY 0
REDIRECT_HTTP_AUTHORIZATION
FCGI_ROLE RESPONDER
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1722063269.7083
REQUEST_TIME 1722063269
empty
0. TypeRocketPro\Features\WhoopsHtmlHandler