ption = ''; $metaData = aioseo()->meta->metaData->getMetaData( $post ); if ( ! empty( $metaData->description ) && ! $default ) { $description = $this->helpers->prepare( $metaData->description, $post->ID, false ); } if ( $description || ( in_array( 'autogenerateDescriptions', aioseo()->internalOptions->deprecatedOptions, true ) && ! aioseo()->options->deprecated->searchAppearance->advanced->autogenerateDescriptions ) ) { $posts[ $post->ID ] = $description; return $description; } $description = $this->helpers->sanitize( $this->getPostTypeDescription( $post->post_type ), $post->ID, $default ); $generateDescriptions = apply_filters( 'aioseo_generate_descriptions_from_content', true, [ $post ] ); if ( ! $description && ! post_password_required( $post ) ) { $description = $post->post_excerpt; if ( $generateDescriptions && in_array( 'useContentForAutogeneratedDescriptions', aioseo()->internalOptions->deprecatedOptions, true ) && aioseo()->options->deprecated->searchAppearance->advanced->useContentForAutogeneratedDescriptions ) { $description = aioseo()->helpers->getDescriptionFromContent( $post ); } $description = $this->helpers->sanitize( $description, $post->ID, $default ); if ( ! $description && $generateDescriptions && $post->post_content ) { $description = $this->helpers->sanitize( aioseo()->helpers->getDescriptionFromContent( $post ), $post->ID, $default ); } } if ( ! is_paged() ) { if ( in_array( 'descriptionFormat', aioseo()->internalOptions->deprecatedOptions, true ) ) { $descriptionFormat = aioseo()->options->deprecated->searchAppearance->global->descriptionFormat; if ( $descriptionFormat ) { $description = preg_replace( '/#description/', $description, $descriptionFormat ); } } } $posts[ $post->ID ] = $description ? $this->helpers->prepare( $description, $post->ID, $default ) : $this->helpers->prepare( term_description( '' ), $post->ID, $default ); return $posts[ $post->ID ]; } /** * Retrieve the default description for the post type. * * @since 4.0.6 * * @param string $postType The post type. * @return string The description. */ public function getPostTypeDescription( $postType ) { static $postTypeDescription = []; if ( isset( $postTypeDescription[ $postType ] ) ) { return $postTypeDescription[ $postType ]; } if ( aioseo()->dynamicOptions->searchAppearance->postTypes->has( $postType ) ) { $description = aioseo()->dynamicOptions->searchAppearance->postTypes->{$postType}->metaDescription; } $postTypeDescription[ $postType ] = empty( $description ) ? '' : $description; return $postTypeDescription[ $postType ]; } /** * Returns the term description. * * @since 4.0.6 * * @param \WP_Term $term The term object. * @param boolean $default Whether we want the default value, not the post one. * @return string The term description. */ public function getTermDescription( $term, $default = false ) { if ( ! is_a( $term, 'WP_Term' ) ) { return ''; } static $terms = []; if ( isset( $terms[ $term->term_id ] ) ) { return $terms[ $term->term_id ]; } $description = ''; if ( in_array( 'autogenerateDescriptions', aioseo()->internalOptions->deprecatedOptions, true ) && ! aioseo()->options->deprecated->searchAppearance->advanced->autogenerateDescriptions ) { $terms[ $term->term_id ] = $description; return $description; } $dynamicOptions = aioseo()->dynamicOptions->noConflict(); if ( ! $description && $dynamicOptions->searchAppearance->taxonomies->has( $term->taxonomy ) ) { $description = $this->helpers->prepare( aioseo()->dynamicOptions->searchAppearance->taxonomies->{$term->taxonomy}->metaDescription, false, $default ); } $terms[ $term->term_id ] = $description ? $description : $this->helpers->prepare( term_description( $term->term_id ), false, $default ); return $terms[ $term->term_id ]; } }