breadcrumb = new Breadcrumb(); } /** * Returns the context data for the homepage. * * @since 4.0.0 * * @return array $context The context data. */ public function home() { $context = [ 'url' => aioseo()->helpers->getUrl(), 'breadcrumb' => $this->breadcrumb->home(), 'name' => aioseo()->meta->title->getTitle(), 'description' => aioseo()->meta->description->getDescription() ]; // Homepage set to show latest posts. if ( 'posts' === get_option( 'show_on_front' ) && is_home() ) { return $context; } // Homepage set to static page. $post = aioseo()->helpers->getPost(); if ( ! $post ) { return []; } $context['object'] = $post; return $context; } /** * Returns the context data for the requested post. * * @since 4.0.0 * * @return array The context data. */ public function post() { $post = aioseo()->helpers->getPost(); if ( ! $post ) { return []; } return [ 'name' => aioseo()->meta->title->getTitle( $post ), 'description' => aioseo()->meta->description->getDescription( $post ), 'url' => aioseo()->helpers->getUrl(), 'breadcrumb' => $this->breadcrumb->post( $post ), 'object' => $post, ]; } /** * Returns the context data for the requested term archive. * * @since 4.0.0 * * @return array The context data. */ public function term() { $term = get_queried_object(); if ( ! $term ) { return []; } return [ 'name' => aioseo()->meta->title->getTitle(), 'description' => aioseo()->meta->description->getDescription(), 'url' => aioseo()->helpers->getUrl(), 'breadcrumb' => $this->breadcrumb->term( $term ) ]; } /** * Returns the context data for the requested author archive. * * @since 4.0.0 * * @return array The context data. */ public function author() { $author = get_queried_object(); if ( ! $author ) { return []; } $title = aioseo()->meta->title->getTitle(); $description = aioseo()->meta->description->getDescription(); $url = aioseo()->helpers->getUrl(); if ( ! $description ) { $description = get_the_author_meta( 'description', $author->ID ); } return [ 'name' => $title, 'description' => $description, 'url' => $url, 'breadcrumb' => $this->breadcrumb->setPositions( [ 'name' => get_the_author_meta( 'display_name', $author->ID ), 'description' => $description, 'url' => $url, 'type' => 'CollectionPage' ] ) ]; } /** * Returns the context data for the requested post archive. * * @since 4.0.0 * * @return array The context data. */ public function postArchive() { $postType = get_queried_object(); if ( ! $postType ) { return []; } $title = aioseo()->meta->title->getTitle(); $description = aioseo()->meta->description->getDescription(); $url = aioseo()->helpers->getUrl(); return [ 'name' => $title, 'description' => $description, 'url' => $url, 'breadcrumb' => $this->breadcrumb->setPositions( [ 'name' => $postType->label, 'description' => $description, 'url' => $url, 'type' => 'CollectionPage' ] ) ]; } /** * Returns the context data for the requested data archive. * * @since 4.0.0 * * @return array $context The context data. */ public function date() { $context = [ 'name' => aioseo()->meta->title->getTitle(), 'description' => aioseo()->meta->description->getDescription(), 'url' => aioseo()->helpers->getUrl() ]; $context['breadcrumb'] = $this->breadcrumb->date( $context ); return $context; } /** * Returns the context data for the search page. * * @since 4.0.0 * * @return array The context data. */ public function search() { global $s; $title = aioseo()->meta->title->getTitle(); $description = aioseo()->meta->description->getDescription(); $url = aioseo()->helpers->getUrl(); return [ 'name' => $title, 'description' => $description, 'url' => $url, 'breadcrumb' => $this->breadcrumb->setPositions( [ 'name' => $s, 'description' => $description, 'url' => $url, 'type' => 'SearchResultsPage' ] ) ]; } /** * Returns the context data for the 404 Not Found page. * * @since 4.0.0 * * @return array The context data. */ public function notFound() { $title = aioseo()->meta->title->getTitle(); $description = aioseo()->meta->description->getDescription(); $url = aioseo()->helpers->getUrl(); return [ 'name' => $title, 'description' => $description, 'url' => $url, 'breadcrumb' => $this->breadcrumb->setPositions( [ 'name' => __( 'Not Found', 'all-in-one-seo-pack' ), 'description' => $description, 'url' => $url ] ) ]; } }