Willkommen bei WordPress. Dies ist dein erster Beitrag. Bearbeite oder lösche ihn und beginne mit dem Schreiben!
Hallo Welt!
von raredesign | Dez 3, 2019 | Allgemein | 0 Kommentare
Cokiee Shell
Current Path : /var/www/web28/html/wp-content/plugins/autodescription/inc/classes/meta/ |
Current File : //var/www/web28/html/wp-content/plugins/autodescription/inc/classes/meta/title.class.php |
<?php /** * @package The_SEO_Framework\Classes\Meta * @subpackage The_SEO_Framework\Meta\Title */ namespace The_SEO_Framework\Meta; \defined( 'THE_SEO_FRAMEWORK_PRESENT' ) or die; use function \The_SEO_Framework\{ coalesce_strlen, get_query_type_from_args, memo, normalize_generation_args, }; use \The_SEO_Framework\{ Data, Data\Filter\Sanitize, }; use \The_SEO_Framework\Helper\{ Post_Type, Query, Taxonomy, }; /** * The SEO Framework plugin * Copyright (C) 2023 - 2024 Sybre Waaijer, CyberWire B.V. (https://cyberwire.nl/) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ /** * Holds getters for meta tag output. * * @since 5.0.0 * @access protected * Use tsf()->title() instead. */ class Title { /** * Returns the meta title from custom fields. Falls back to autogenerated title. * * @since 5.0.0 * * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @return string The real title output. */ public static function get_title( $args = null ) { return coalesce_strlen( static::get_custom_title( $args ) ) ?? static::get_generated_title( $args ); } /** * Returns an unbranded, unpaginated, and unprotected title * from custom fields or an autogenerated fallback. * * @since 5.0.0 * * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @return string The unmodified title output. */ public static function get_bare_title( $args = null ) { return coalesce_strlen( static::get_bare_custom_title( $args ) ) ?? static::get_bare_generated_title( $args ); } /** * Returns the custom user-inputted title. * * @since 3.1.0 * @since 4.0.0 Moved the filter to a separated method. * @since 4.1.0 Added the third $social parameter. * @since 4.2.0 Now supports the `$args['pta']` index. * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Removed the second `$escape` parameter. * 3. Moved the third parameter to the second. * * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @param bool $social Whether the title is meant for social display. * @return string The custom field title. */ public static function get_custom_title( $args = null, $social = false ) { $title = static::get_bare_custom_title( $args ); // Allow 0 to be the title. if ( ! \strlen( $title ) ) return ''; if ( Title\Conditions::use_protection_status( $args ) ) $title = static::add_protection_status( $title, $args ); if ( Title\Conditions::use_pagination( $args ) ) $title = static::add_pagination( $title ); if ( Title\Conditions::use_branding( $args, $social ) ) $title = static::add_branding( $title, $args ); return $title; } /** * Returns the autogenerated meta title. * * @since 3.1.0 * @since 3.2.4 1. Added check for title protection. * 2. Moved check for title pagination. * @since 4.0.0 Moved the filter to a separated method. * @since 4.1.0 Added the third $social parameter. * @since 4.2.0 Now supports the `$args['pta']` index. * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Removed the second `$escape` parameter. * 3. Moved the third parameter to the second. * * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @param bool $social Whether the title is meant for social display. * @return string The generated title output. */ public static function get_generated_title( $args = null, $social = false ) { // We should always get something from here. $title = static::get_bare_generated_title( $args ); if ( Title\Conditions::use_protection_status( $args ) ) $title = static::add_protection_status( $title, $args ); if ( Title\Conditions::use_pagination( $args ) ) $title = static::add_pagination( $title ); if ( Title\Conditions::use_branding( $args, $social ) ) $title = static::add_branding( $title, $args ); return $title; } /** * Returns the raw filtered custom field meta title. * * @since 4.0.0 * @since 4.2.0 1. The first parameter can now be voided. * 2. The first parameter is now rectified, so you can leave out indexes. * 3. Now supports the `$args['pta']` index. * @since 5.0.0 Moved from `\The_SEO_Framework\Load`. * * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @return string The raw generated title output. */ public static function get_bare_custom_title( $args = null ) { if ( isset( $args ) ) { normalize_generation_args( $args ); $title = static::get_custom_title_from_args( $args ); } else { $title = static::get_custom_title_from_query(); } /** * Filters the title from custom field, if any. * * @since 3.1.0 * @since 4.2.0 Now supports the `$args['pta']` index. * * @param string $title The title. * @param array|null $args The query arguments. Contains 'id', 'tax', 'pta', and 'uid'. * Is null when the query is auto-determined. */ return Sanitize::metadata_content( (string) \apply_filters( 'the_seo_framework_title_from_custom_field', $title, $args, ) ); } /** * Returns the raw filtered autogenerated meta title. * * @since 4.0.0 * @since 4.2.0 1. The first parameter can now be voided. * 2. The first parameter is now rectified, so you can leave out indexes. * 3. Now supports the `$args['pta']` index. * @since 5.0.0 Moved from `\The_SEO_Framework\Load`. * * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @return string The raw generated title output. */ public static function get_bare_generated_title( $args = null ) { isset( $args ) and normalize_generation_args( $args ); // phpcs:ignore, WordPress.CodeAnalysis.AssignmentInCondition -- I know. if ( null !== $memo = memo( null, $args ) ) return $memo; Title\Utils::remove_default_title_filters( false, $args ); $title = isset( $args ) ? static::generate_title_from_args( $args ) : static::generate_title_from_query(); Title\Utils::reset_default_title_filters(); /** * Filters the title from query. * * @NOTE: This filter doesn't consistently run on the SEO Settings page. * You may want to avoid this filter for the homepage and pta, by returning the default value. * @since 3.1.0 * @since 4.2.0 Now supports the `$args['pta']` index. * @param string $title The title. * @param array|null $args The query arguments. Contains 'id', 'tax', 'pta', and 'uid'. * Is null when the query is auto-determined. */ $title = (string) \apply_filters( 'the_seo_framework_title_from_generation', $title ?: static::get_untitled_title(), $args, ); return memo( \strlen( $title ) ? Sanitize::metadata_content( $title ) : '', $args, ); } /** * Returns the custom user-inputted title. * * @since 3.1.0 * @since 4.2.0 Now supports the `$args['pta']` index. * @since 5.0.0 Moved from `\The_SEO_Framework\Load`. * * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @return string The custom field title, if it exists. */ public static function get_bare_unfiltered_custom_title( $args = null ) { return isset( $args ) ? static::get_custom_title_from_args( $args ) : static::get_custom_title_from_query(); } /** * Gets a custom title, based on current query, without additions or prefixes. * * @since 3.1.0 * @since 3.2.2 Now tests for the static frontpage metadata prior getting fallback data. * @since 4.2.0 Can now return custom post type archive titles. * @since 5.0.0 Moved from `\The_SEO_Framework\Load`. * * @return string The custom title. */ public static function get_custom_title_from_query() { if ( Query::is_real_front_page() ) { if ( Query::is_static_front_page() ) { $title = coalesce_strlen( Data\Plugin::get_option( 'homepage_title' ) ) ?? Data\Plugin\Post::get_meta_item( '_genesis_title' ); } else { $title = Data\Plugin::get_option( 'homepage_title' ); } } elseif ( Query::is_singular() ) { $title = Data\Plugin\Post::get_meta_item( '_genesis_title' ); } elseif ( Query::is_editable_term() ) { $title = Data\Plugin\Term::get_meta_item( 'doctitle' ); } elseif ( \is_post_type_archive() ) { $title = Data\Plugin\PTA::get_meta_item( 'doctitle' ); } if ( isset( $title ) && \strlen( $title ) ) return Sanitize::metadata_content( $title ); return ''; } /** * Gets a custom title, based on input arguments query, without additions or prefixes. * * @since 5.0.0 * * @param array $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * @return string The custom title. */ public static function get_custom_title_from_args( $args ) { normalize_generation_args( $args ); switch ( get_query_type_from_args( $args ) ) { case 'single': if ( Query::is_static_front_page( $args['id'] ) ) { $title = coalesce_strlen( Data\Plugin::get_option( 'homepage_title' ) ) ?? Data\Plugin\Post::get_meta_item( '_genesis_title', $args['id'] ); } else { $title = Data\Plugin\Post::get_meta_item( '_genesis_title', $args['id'] ); } break; case 'term': $title = Data\Plugin\Term::get_meta_item( 'doctitle', $args['id'] ); break; case 'homeblog': $title = Data\Plugin::get_option( 'homepage_title' ); break; case 'pta': $title = Data\Plugin\PTA::get_meta_item( 'doctitle', $args['pta'] ); } if ( isset( $title ) && \strlen( $title ) ) return Sanitize::metadata_content( $title ); return ''; } /** * Generates a title, based on current query, without additions or prefixes. * * @since 5.0.0 * * @return string The generated title. */ public static function generate_title_from_query() { if ( Query::is_real_front_page() ) { $title = static::get_front_page_title(); } elseif ( Query::is_singular() ) { $title = static::get_post_title(); } elseif ( Query::is_archive() ) { $title = static::get_archive_title(); } elseif ( Query::is_search() ) { $title = static::get_search_query_title(); } elseif ( \is_404() ) { $title = static::get_404_title(); } return $title ?? ''; } /** * Generates a title, based on expected query, without additions or prefixes. * * @since 5.0.0 * * @param array $args The query arguments. Required. Accepts 'id', 'tax', 'pta', and 'uid'. * @return string The generated title. Empty if query can't be replicated. */ public static function generate_title_from_args( $args ) { normalize_generation_args( $args ); switch ( get_query_type_from_args( $args ) ) { case 'single': if ( Query::is_static_front_page( $args['id'] ) ) { $title = static::get_front_page_title(); } else { $title = static::get_post_title( $args['id'] ); } break; case 'term': $title = static::get_archive_title( \get_term( $args['id'], $args['tax'] ) ); break; case 'homeblog': $title = static::get_front_page_title(); break; case 'pta': $title = static::get_archive_title( \get_post_type_object( $args['pta'] ) ); break; case 'user': $title = static::get_archive_title( \get_userdata( $args['uid'] ) ); } return $title ?? ''; } /** * Returns the archive title. Also works in admin. * * @NOTE Taken from WordPress core. Altered to work for metadata and in admin. * @see WP Core get_the_archive_title() * * @since 5.0.0 * * @param \WP_Term|\WP_User|\WP_Post_Type|\WP_Error|null $object The Term object or error. * Leave null to autodetermine query. * @return string The generated archive title. */ public static function get_archive_title( $object = null ) { if ( $object && \is_wp_error( $object ) ) return ''; return static::get_archive_title_list( $object )[0]; } /** * Returns the archive title items. Also works in admin. * * @NOTE Taken from WordPress core. Altered to work for metadata. * @see WP Core get_the_archive_title() * * @since 5.0.0 * * @param \WP_Term|\WP_User|\WP_Post_Type|null $object The Term object. * Leave null to autodetermine query. * @return String[title,prefix,title_without_prefix] The generated archive title items. */ public static function get_archive_title_list( $object = null ) { [ $title, $prefix ] = $object ? static::get_archive_title_from_object( $object ) : static::get_archive_title_from_query(); $title_without_prefix = $title; if ( Title\Conditions::use_generated_archive_prefix( $object ) ) { if ( $prefix ) { $title = \sprintf( /* translators: 1: Title prefix. 2: Title. */ \_x( '%1$s %2$s', 'archive title', 'default' ), $prefix, $title, ); } } /** * Filters the archive title. * This is a sibling of WordPress's `get_the_archive_title`, * but then without the HTML. * * @since 3.0.4 * @since 4.2.0 Added the `$prefix` and `$origintitle_without_prefixal_title` parameters. * @since 5.0.0 Deprecated * @deprecated * * @param string $title Archive title to be displayed. * @param \WP_Term|\WP_User|\WP_Post_Type|null $object The archive object. * Is null when query is autodetermined. * @param string $title_without_prefix Archive title without prefix. * @param string $prefix Archive title prefix. */ $title = (string) \apply_filters_deprecated( 'the_seo_framework_generated_archive_title', [ $title, $object, $title_without_prefix, $prefix, ], '5.0.0 of The SEO Framework', 'the_seo_framework_generated_archive_title_items' ); /** * @since 5.0.0 * @param String[title,prefix,title_without_prefix] $items The generated archive title items. * @param \WP_Term|\WP_User|\WP_Post_Type|null $object The archive object. * Is null when query is autodetermined. * @param string $title_without_prefix Archive title without prefix. * @param string $prefix Archive title prefix. */ return \apply_filters( 'the_seo_framework_generated_archive_title_items', [ $title, $prefix, $title_without_prefix, ], $object, $title, $title_without_prefix, $prefix, ); } /** * Returns the generated archive title by evaluating the input Term only. * * @since 5.0.0 * * @return string[$title,$prefix] The title and prefix. */ public static function get_archive_title_from_query() { $title = \__( 'Archives', 'default' ); $prefix = ''; if ( Query::is_category() ) { $title = static::get_term_title(); $prefix = \_x( 'Category:', 'category archive title prefix', 'default' ); } elseif ( Query::is_tag() ) { $title = static::get_term_title(); $prefix = \_x( 'Tag:', 'tag archive title prefix', 'default' ); } elseif ( Query::is_author() ) { $title = static::get_user_title(); $prefix = \_x( 'Author:', 'author archive title prefix', 'default' ); } elseif ( \is_date() ) { if ( \is_year() ) { $title = \get_the_date( \_x( 'Y', 'yearly archives date format', 'default' ) ); $prefix = \_x( 'Year:', 'date archive title prefix', 'default' ); } elseif ( \is_month() ) { $title = \get_the_date( \_x( 'F Y', 'monthly archives date format', 'default' ) ); $prefix = \_x( 'Month:', 'date archive title prefix', 'default' ); } elseif ( \is_day() ) { $title = \get_the_date( \_x( 'F j, Y', 'daily archives date format', 'default' ) ); $prefix = \_x( 'Day:', 'date archive title prefix', 'default' ); } } elseif ( \is_tax( 'post_format' ) ) { if ( \is_tax( 'post_format', 'post-format-aside' ) ) { $title = \_x( 'Asides', 'post format archive title', 'default' ); } elseif ( \is_tax( 'post_format', 'post-format-gallery' ) ) { $title = \_x( 'Galleries', 'post format archive title', 'default' ); } elseif ( \is_tax( 'post_format', 'post-format-image' ) ) { $title = \_x( 'Images', 'post format archive title', 'default' ); } elseif ( \is_tax( 'post_format', 'post-format-video' ) ) { $title = \_x( 'Videos', 'post format archive title', 'default' ); } elseif ( \is_tax( 'post_format', 'post-format-quote' ) ) { $title = \_x( 'Quotes', 'post format archive title', 'default' ); } elseif ( \is_tax( 'post_format', 'post-format-link' ) ) { $title = \_x( 'Links', 'post format archive title', 'default' ); } elseif ( \is_tax( 'post_format', 'post-format-status' ) ) { $title = \_x( 'Statuses', 'post format archive title', 'default' ); } elseif ( \is_tax( 'post_format', 'post-format-audio' ) ) { $title = \_x( 'Audio', 'post format archive title', 'default' ); } elseif ( \is_tax( 'post_format', 'post-format-chat' ) ) { $title = \_x( 'Chats', 'post format archive title', 'default' ); } } elseif ( \is_post_type_archive() ) { $title = static::get_post_type_archive_title(); $prefix = \_x( 'Archives:', 'post type archive title prefix', 'default' ); } elseif ( Query::is_tax() ) { $term = \get_queried_object(); if ( $term ) { $title = static::get_term_title( $term ); $prefix = \sprintf( /* translators: %s: Taxonomy singular name. */ \_x( '%s:', 'taxonomy term archive title prefix', 'default' ), Sanitize::metadata_content( Taxonomy::get_label( $term->taxonomy ?? '' ) ), ); } } return [ $title, $prefix ]; } /** * Returns the generated archive title by evaluating the input Term only. * * @since 5.0.0 * * @param \WP_Term|\WP_User|\WP_Post_Type $object The Term object. * @return string[$title,$prefix] The title and prefix. */ public static function get_archive_title_from_object( $object ) { $title = \__( 'Archives', 'default' ); $prefix = ''; if ( ! empty( $object->taxonomy ) ) { $title = static::get_term_title( $object ); switch ( $object->taxonomy ) { case 'category': $prefix = \_x( 'Category:', 'category archive title prefix', 'default' ); break; case 'post_tag': $prefix = \_x( 'Tag:', 'tag archive title prefix', 'default' ); break; default: $prefix = \sprintf( /* translators: %s: Taxonomy singular name. */ \_x( '%s:', 'taxonomy term archive title prefix', 'default' ), Taxonomy::get_label( $object->taxonomy ), ); } } elseif ( $object instanceof \WP_Post_Type ) { $title = static::get_post_type_archive_title( $object->name ); $prefix = \_x( 'Archives:', 'post type archive title prefix', 'default' ); } elseif ( $object instanceof \WP_User ) { $title = static::get_user_title( $object->ID ); $prefix = \_x( 'Author:', 'author archive title prefix', 'default' ); } return [ $title, $prefix ]; } /** * Returns Post Title from ID. * * @NOTE Taken from WordPress core. Altered to work in the Admin area and when post_title is actually supported. * @see WP Core single_post_title() * * @since 5.0.0 * * @param int|\WP_Post $id The Post ID or post object. * @return string The generated post title. */ public static function get_post_title( $id = 0 ) { // Blog queries can be tricky. Use get_the_real_id to be certain. $post = \get_post( $id ?: Query::get_the_real_id() ); if ( isset( $post->post_title ) && \post_type_supports( $post->post_type, 'title' ) ) { /** * Filters the page title for a single post. * * @since WP Core 0.71 * * @param string $post_title The single post page title. * @param \WP_Post $post The current queried object as returned by get_queried_object(). */ $title = \apply_filters( 'single_post_title', $post->post_title, $post ); } if ( isset( $title ) && \strlen( $title ) ) return Sanitize::metadata_content( $title ); return ''; } /** * Fetches single term title. * * It can autodetermine the term; so, perform your checks prior calling. * * Taken from WordPress core. Altered to work in the Admin area. * * @see WP Core single_term_title() * * @since 5.0.0 * * @param null|\WP_Term $term The term name, required in the admin area. * @return string The generated single term title. */ public static function get_term_title( $term = null ) { $term ??= \get_queried_object(); // We're allowing `0` as a term name here. https://core.trac.wordpress.org/ticket/56518 if ( ! isset( $term->name ) ) return ''; switch ( $term->taxonomy ) { case 'category': /** * Filter the category archive page title. * * @since WP Core 2.0.10 * * @param string $term_name Category name for archive being displayed. */ $title = \apply_filters( 'single_cat_title', $term->name ); break; case 'post_tag': /** * Filter the tag archive page title. * * @since WP Core 2.3.0 * * @param string $term_name Tag name for archive being displayed. */ $title = \apply_filters( 'single_tag_title', $term->name ); break; default: /** * Filter the custom taxonomy archive page title. * * @since WP Core 3.1.0 * * @param string $term_name Term name for archive being displayed. */ $title = \apply_filters( 'single_term_title', $term->name ); } return \strlen( $title ) ? Sanitize::metadata_content( $title ) : ''; } /** * Fetches user title. * * @since 5.0.0 * * @param int $user_id The user ID. * @return string The generated post type archive title. */ public static function get_user_title( $user_id = 0 ) { return Sanitize::metadata_content( \get_userdata( $user_id ?: Query::get_the_real_id() )->display_name ?? '' ); } /** * Fetches single term title. * * @NOTE Taken from WordPress core. Altered to work in the Admin area. * @see WP Core post_type_archive_title() * * @since 5.0.0 * * @param string $post_type The post type. * @return string The generated post type archive title. */ public static function get_post_type_archive_title( $post_type = '' ) { $post_type = $post_type ?: Query::get_current_post_type(); if ( \is_array( $post_type ) ) $post_type = reset( $post_type ); if ( ! \in_array( $post_type, Post_Type::get_public_pta(), true ) ) return ''; /** * Filters the post type archive title. * * @since WP Core 3.1.0 * * @param string $post_type_name Post type 'name' label. * @param string $post_type Post type. */ $title = \apply_filters( 'post_type_archive_title', Post_Type::get_label( $post_type, false ), $post_type, ); return \strlen( $title ) ? Sanitize::metadata_content( $title ) : ''; } /** * Returns untitled title. * * @since 5.0.0 * * @return string The untitled title. */ public static function get_untitled_title() { // FIXME: WordPress no longer outputs 'Untitled' for the title. // Though, it still holds this translation in wp_widget_rss_output(), which isn't going anywhere. return \__( 'Untitled', 'default' ); } /** * Returns search title. * * @since 5.0.0 * * @return string The generated search title. */ public static function get_search_query_title() { return Sanitize::metadata_content( /* translators: %s: search phrase */ \sprintf( \__( 'Search Results for “%s”', 'default' ), \get_search_query( true ) ) ); } /** * Returns 404 title. * * @since 5.0.0 * * @return string The generated 404 title. */ public static function get_404_title() { return Sanitize::metadata_content( /** * @since 2.5.2 * @since 5.0.0 Now defaults to Core translatable "Page not found." * @param string $title The 404 title. */ (string) \apply_filters( 'the_seo_framework_404_title', \__( 'Page not found', 'default' ) ) ); } /** * Merges title branding, when allowed. * * @since 5.0.0 * * @param string $title The title. * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @return string The title with branding. */ public static function add_branding( $title, $args = null ) { if ( isset( $args ) ) { normalize_generation_args( $args ); switch ( get_query_type_from_args( $args ) ) { case 'single': if ( Query::is_static_front_page( $args['id'] ) ) { $addition = static::get_addition_for_front_page(); $seplocation = static::get_addition_location_for_front_page(); } else { $addition = static::get_addition(); $seplocation = static::get_addition_location(); } break; case 'homeblog': $addition = static::get_addition_for_front_page(); $seplocation = static::get_addition_location_for_front_page(); break; default: $addition = static::get_addition(); $seplocation = static::get_addition_location(); } } else { if ( Query::is_real_front_page() ) { $addition = static::get_addition_for_front_page(); $seplocation = static::get_addition_location_for_front_page(); } else { $addition = static::get_addition(); $seplocation = static::get_addition_location(); } } $title = trim( $title ); $addition = trim( $addition ); if ( \strlen( $addition ) && \strlen( $title ) ) { $sep = static::get_separator(); if ( 'left' === $seplocation ) return "$addition $sep $title"; return "$title $sep $addition"; } return $title; } /** * Merges pagination with the title, if paginated. * * @since 5.0.0 * * @param string $title The title. * @return string The title with possible pagination. */ public static function add_pagination( $title ) { $page = max( Query::paged(), Query::page() ); if ( $page >= 2 ) { $sep = static::get_separator(); /* translators: %s: Page number. */ $paging = \sprintf( \__( 'Page %s', 'default' ), $page ); return \is_rtl() ? "$paging $sep $title" : "$title $sep $paging"; } return $title; } /** * Merges title protection prefixes. * * @since 5.0.0 * * @param string $title The title. Passed by reference. * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @return string The title with possible protection status. */ public static function add_protection_status( $title, $args = null ) { if ( isset( $args ) ) { normalize_generation_args( $args ); if ( 'single' !== get_query_type_from_args( $args ) ) return $title; } elseif ( ! Query::is_singular() ) { return $title; } $post = \get_post( $args['id'] ?? Query::get_the_real_id() ); if ( ! empty( $post->post_password ) ) { return \sprintf( /** * Filters the text prepended to the post title of private posts. * * The filter is only applied on the front end. * * @since WP Core 2.8.0 * * @param string $prepend Text displayed before the post title. * Default 'Private: %s'. * @param WP_Post $post Current post object. */ (string) \apply_filters( 'protected_title_format', /* translators: %s: Protected post title. */ \__( 'Protected: %s', 'default' ), $post, ), $title, ); } elseif ( 'private' === ( $post->post_status ?? null ) ) { return \sprintf( /** * Filters the text prepended to the post title of private posts. * * The filter is only applied on the front end. * * @since WP Core 2.8.0 * * @param string $prepend Text displayed before the post title. * Default 'Private: %s'. * @param WP_Post $post Current post object. */ $private_title_format = (string) \apply_filters( 'private_title_format', /* translators: %s: Private post title. */ \__( 'Private: %s', 'default' ), $post, ), $title, ); } return $title; } /** * Generates front page title. * * This is an alias of get_blogname(). The difference is that this is used for * the front-page title output solely, whereas the other one has a mixed usage. * * @since 5.0.0 * * @return string The generated front page title. */ public static function get_front_page_title() { return Sanitize::metadata_content( Data\Blog::get_public_blog_name() ); } /** * Returns the custom blogname from option or bloginfo. * * This is an alias of get_blogname(). The difference is that this is used for * the title additions output solely, whereas the other one has a mixed usage. * * @since 5.0.0 * * @return string The trimmed tagline. */ public static function get_addition() { return Sanitize::metadata_content( Data\Blog::get_public_blog_name() ); } /** * Returns the custom homepage additions (tagline) from option or bloginfo, when set. * Memoizes the return value. * * @since 2.6.0 * @since 5.0.0 Moved from `\The_SEO_Framework\Load`. * * @return string The trimmed tagline. */ public static function get_addition_for_front_page() { return memo() ?? memo( Sanitize::metadata_content( coalesce_strlen( Data\Plugin::get_option( 'homepage_title_tagline' ) ) ?? Data\Blog::get_filtered_blog_description() ) ); } /** * Returns title separator location. * * @since 2.6.0 * @since 5.0.0 Moved from `\The_SEO_Framework\Load`. * * @return string The separator location. */ public static function get_addition_location() { return Data\Plugin::get_option( 'title_location' ); } /** * Returns title separator location for the front page. * * @since 2.6.0 * @since 5.0.0 Moved from `\The_SEO_Framework\Load`. * * @return string The Seplocation for the front page. */ public static function get_addition_location_for_front_page() { return Data\Plugin::get_option( 'home_title_location' ); } /** * Gets Title Separator. * Memoizes the return value. * * @since 2.6.0 * @since 5.0.0 Moved from `\The_SEO_Framework\Load`. * * @return string The Separator. */ public static function get_separator() { /** * @since 2.3.9 * @param string $eparator The title separator */ return memo() ?? memo( (string) \apply_filters( 'the_seo_framework_title_separator', Title\Utils::get_separator_list()[ Data\Plugin::get_option( 'title_separator' ) ] ?? '-', ) ); } }
Cokiee Shell Web 1.0, Coded By Razor
Neueste Kommentare