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/twitter.class.php |
<?php /** * @package The_SEO_Framework\Classes\Meta * @subpackage The_SEO_Framework\Meta\Twitter */ namespace The_SEO_Framework\Meta; \defined( 'THE_SEO_FRAMEWORK_PRESENT' ) or die; use function \The_SEO_Framework\{ coalesce_strlen, normalize_generation_args, }; use \The_SEO_Framework\{ Data, Data\Filter\Sanitize, Helper\Query, }; /** * 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()->twitter() instead. */ class Twitter { /** * Tests whether we can/should fall back to Open Graph. * * @since 5.0.0 * * @return bool Whether to fall back to Open Graph tags. */ public static function fallback_to_open_graph() { static $fallback; return $fallback ??= (bool) Data\Plugin::get_option( 'og_tags' ); } /** * Generates the Twitter Card type. * * @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 Twitter Card type. */ public static function get_card_type( $args = null ) { $card = static::get_custom_card_type( $args ) ?: static::get_generated_card_type( $args ); if ( \has_filter( 'the_seo_framework_twittercard_output' ) ) { /** * @since 2.3.0 * @since 2.7.0 Added output within filter. * @since 5.0.0 Deprecated. * @deprecated * @param string $card The generated Twitter card type. * @param int $id The current page or term ID. */ $card = (string) \apply_filters_deprecated( 'the_seo_framework_twittercard_output', [ $card, Query::get_the_real_id(), ], '5.0.0', ); } return $card; } /** * Gets the custom card type. * * @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 custom card type. Empty string if not set. */ public static function get_custom_card_type( $args = null ) { if ( isset( $args ) ) { normalize_generation_args( $args ); if ( $args['tax'] ) { $card = Data\Plugin\Term::get_meta_item( 'tw_card_type', $args['id'] ); } elseif ( $args['pta'] ) { $card = Data\Plugin\PTA::get_meta_item( 'tw_card_type', $args['pta'] ); } elseif ( empty( $args['uid'] ) && Query::is_real_front_page_by_id( $args['id'] ) ) { if ( $args['id'] ) { $card = Data\Plugin::get_option( 'homepage_twitter_card_type' ) ?: Data\Plugin\Post::get_meta_item( '_tsf_twitter_card_type', $args['id'] ); } else { $card = Data\Plugin::get_option( 'homepage_twitter_card_type' ); } } elseif ( $args['id'] ) { $card = Data\Plugin\Post::get_meta_item( '_tsf_twitter_card_type', $args['id'] ); } } else { if ( Query::is_real_front_page() ) { if ( Query::is_static_front_page() ) { $card = Data\Plugin::get_option( 'homepage_twitter_card_type' ) ?: Data\Plugin\Post::get_meta_item( '_tsf_twitter_card_type' ); } else { $card = Data\Plugin::get_option( 'homepage_twitter_card_type' ); } } elseif ( Query::is_singular() ) { $card = Data\Plugin\Post::get_meta_item( '_tsf_twitter_card_type' ); } elseif ( Query::is_editable_term() ) { $card = Data\Plugin\Term::get_meta_item( 'tw_card_type' ); } elseif ( \is_post_type_archive() ) { $card = Data\Plugin\PTA::get_meta_item( 'tw_card_type' ); } } if ( ! empty( $card ) && \in_array( $card, static::get_supported_cards(), true ) ) return $card; return ''; } /** * Generates the default card type. * * @NOTE Forward compatibility with $args: https://github.com/sybrew/the-seo-framework/issues/525 * @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 default Twitter Card type for the current request. */ public static function get_generated_card_type( $args = null ) { // phpcs:ignore, VariableAnalysis -- see description note $card = Data\Plugin::get_option( 'twitter_card' ); $supported_cards = static::get_supported_cards(); // Forward compatibility if ( ! \in_array( $card, $supported_cards, true ) ) $card = reset( $supported_cards ); return $card; } /** * Returns array of supported Twitter Card types. * * @since 5.0.0 * * @return array Supported Twitter Card types. */ public static function get_supported_cards() { /** * @since 5.0.0 * @param string[] The supported Twitter card types. * These are used for settings population, validation, and sanitization. */ return \apply_filters( 'the_seo_framework_supported_twitter_card_types', [ 'summary', 'summary_large_image', ], ); } /** * Returns the Twitter site handle. * * @since 5.0.0 * * @return string */ public static function get_site() { return Data\Plugin::get_option( 'twitter_site' ); } /** * Returns the Twitter post creator. * * @since 5.0.0 * * @return string */ public static function get_creator() { return Data\Plugin\User::get_current_post_author_meta_item( 'twitter_page' ) ?: Data\Plugin::get_option( 'twitter_creator' ); } /** * Returns the Twitter meta title. * Falls back to Open Graph 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 Twitter Title. */ public static function get_title( $args = null ) { return coalesce_strlen( static::get_custom_title( $args ) ) ?? static::get_generated_title( $args ); } /** * Returns the Twitter meta title from custom field. * Falls back to Open Graph 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 Twitter Title. */ public static function get_custom_title( $args = null ) { return isset( $args ) ? static::get_custom_title_from_args( $args ) : static::get_custom_title_from_query(); } /** * Returns the Twitter meta title from custom field, based on query. * Falls back to Open Graph title. * * @since 5.0.0 * * @return string Custom twitter 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_twitter_title' ) ) ?? Data\Plugin\Post::get_meta_item( '_twitter_title' ); } else { $title = Data\Plugin::get_option( 'homepage_twitter_title' ); } } elseif ( Query::is_singular() ) { $title = Data\Plugin\Post::get_meta_item( '_twitter_title' ); } elseif ( Query::is_editable_term() ) { $title = Data\Plugin\Term::get_meta_item( 'tw_title' ); } elseif ( \is_post_type_archive() ) { $title = Data\Plugin\PTA::get_meta_item( 'tw_title' ); } if ( ! isset( $title ) ) return ''; if ( \strlen( $title ) ) return Sanitize::metadata_content( $title ); // At least there was an attempt made to fetch a title when we reach this. Try harder. return static::fallback_to_open_graph() ? Open_Graph::get_custom_title_from_query() : Title::get_custom_title( null, true ); } /** * Returns the Twitter meta title from custom field, based on arguments. * Falls back to Open Graph title. * * @since 5.0.0 * * @param array $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * @return string Twitter Title. */ public static function get_custom_title_from_args( $args ) { normalize_generation_args( $args ); if ( $args['tax'] ) { $title = Data\Plugin\Term::get_meta_item( 'tw_title', $args['id'] ); } elseif ( $args['pta'] ) { $title = Data\Plugin\PTA::get_meta_item( 'tw_title', $args['pta'] ); } elseif ( empty( $args['uid'] ) && Query::is_real_front_page_by_id( $args['id'] ) ) { if ( $args['id'] ) { $title = coalesce_strlen( Data\Plugin::get_option( 'homepage_twitter_title' ) ) ?? Data\Plugin\Post::get_meta_item( '_twitter_title', $args['id'] ); } else { $title = Data\Plugin::get_option( 'homepage_twitter_title' ); } } elseif ( $args['id'] ) { $title = Data\Plugin\Post::get_meta_item( '_twitter_title', $args['id'] ); } if ( ! isset( $title ) ) return ''; if ( \strlen( $title ) ) return Sanitize::metadata_content( $title ); // At least there was an attempt made to fetch a title when we reach this. Try harder. return static::fallback_to_open_graph() ? Open_Graph::get_custom_title_from_args( $args ) : Title::get_custom_title( $args, true ); } /** * Returns the autogenerated Twitter meta title. * Falls back to meta 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 generated Twitter Title. */ public static function get_generated_title( $args = null ) { return Title::get_generated_title( $args, true ); } /** * Returns the Twitter meta description. * Falls back to Open Graph description. * * @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 Twitter description output. */ public static function get_description( $args = null ) { return coalesce_strlen( static::get_custom_description( $args ) ) ?? static::get_generated_description( $args ); } /** * Returns the Twitter meta description from custom field. * Falls back to Open Graph description. * * @since 5.0.0 * * @param array|null $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * Leave null to autodetermine query. * @return string Twitter description. */ public static function get_custom_description( $args = null ) { return isset( $args ) ? static::get_custom_description_from_args( $args ) : static::get_custom_description_from_query(); } /** * Returns the Twitter meta description from custom field, based on query. * Falls back to Open Graph description. * * @since 5.0.0 * * @return string Twitter description. */ public static function get_custom_description_from_query() { if ( Query::is_real_front_page() ) { if ( Query::is_static_front_page() ) { $desc = coalesce_strlen( Data\Plugin::get_option( 'homepage_twitter_description' ) ) ?? Data\Plugin\Post::get_meta_item( '_twitter_description' ); } else { $desc = Data\Plugin::get_option( 'homepage_twitter_description' ); } } elseif ( Query::is_singular() ) { $desc = Data\Plugin\Post::get_meta_item( '_twitter_description' ); } elseif ( Query::is_editable_term() ) { $desc = Data\Plugin\Term::get_meta_item( 'tw_description' ); } elseif ( \is_post_type_archive() ) { $desc = Data\Plugin\PTA::get_meta_item( 'tw_description' ); } if ( ! isset( $desc ) ) return ''; if ( \strlen( $desc ) ) return Sanitize::metadata_content( $desc ); // At least there was an attempt made to fetch a title when we reach this. Try harder. return static::fallback_to_open_graph() ? Open_Graph::get_custom_description_from_query() : Description::get_custom_description(); } /** * Returns the Twitter meta description from custom field, based on arguments. * Falls back to Open Graph description. * * @since 5.0.0 * * @param array $args The query arguments. Accepts 'id', 'tax', 'pta', and 'uid'. * @return string Twitter description. */ public static function get_custom_description_from_args( $args ) { normalize_generation_args( $args ); if ( $args['tax'] ) { $desc = Data\Plugin\Term::get_meta_item( 'tw_description', $args['id'] ); } elseif ( $args['pta'] ) { $desc = Data\Plugin\PTA::get_meta_item( 'tw_description', $args['pta'] ); } elseif ( empty( $args['uid'] ) && Query::is_real_front_page_by_id( $args['id'] ) ) { if ( $args['id'] ) { $desc = coalesce_strlen( Data\Plugin::get_option( 'homepage_twitter_description' ) ) ?? Data\Plugin\Post::get_meta_item( '_twitter_description', $args['id'] ); } else { $desc = Data\Plugin::get_option( 'homepage_twitter_description' ); } } elseif ( $args['id'] ) { $desc = Data\Plugin\Post::get_meta_item( '_twitter_description', $args['id'] ); } if ( ! isset( $desc ) ) return ''; if ( \strlen( $desc ) ) return Sanitize::metadata_content( $desc ); // At least there was an attempt made to fetch a title when we reach this. Try harder. return static::fallback_to_open_graph() ? Open_Graph::get_custom_description_from_args( $args ) : Title::get_custom_description( $args ); } /** * Returns the autogenerated Twitter meta description. Falls back to Open Graph and then meta description. * * @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 generated Twitter description output. */ public static function get_generated_description( $args = null ) { return Description::get_generated_description( $args, 'twitter' ); } }
Cokiee Shell Web 1.0, Coded By Razor
Neueste Kommentare