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/helper/ |
Current File : //var/www/web28/html/wp-content/plugins/autodescription/inc/classes/helper/taxonomy.class.php |
<?php /** * @package The_SEO_Framework\Classes\Helper\Taxonomy * @subpackage The_SEO_Framework\Query */ namespace The_SEO_Framework\Helper; \defined( 'THE_SEO_FRAMEWORK_PRESENT' ) or die; use function \The_SEO_Framework\{ memo, umemo, }; use \The_SEO_Framework\Data; /** * 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 a collection of helper methods for Taxonomy. * * @since 5.0.0 * @access protected * Use tsf()->taxonomy() instead. */ class Taxonomy { /** * Checks if the taxonomy isn't disabled, and that at least one taxonomy * objects post type supports The SEO Framework. * * @since 3.1.0 * @since 4.0.0 1. Now returns true if at least one post type for the taxonomy is supported. * 2. Now uses `is_post_type_supported()` instead of `is_post_type_disabled()`. * @since 4.1.0 1. Now also checks for the option `disabled_taxonomies`. * 2. Now applies filters `the_seo_framework_taxonomy_disabled`. * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Renamed from `is_taxonomy_disabled`. * * @param ?string $taxonomy The taxonomy name. Leave null to automatically determine. * @return bool True if at least one post type in taxonomy is supported. */ public static function is_disabled( $taxonomy = null ) { $disabled = false; // First, test pertaining option directly. if ( $taxonomy && Data\Plugin::get_option( 'disabled_taxonomies', $taxonomy ) ) { $disabled = true; } else { // Then, test some() post types. // Populate $disabled within loop, for the taxonomy might not have post types at all. foreach ( static::get_post_types( $taxonomy ) as $type ) { if ( Post_Type::is_supported( $type ) ) { $disabled = false; break; } $disabled = true; } } /** * @since 4.1.0 * @param bool $disabled Whether the taxonomy is disabled. * @param ?string $taxonomy The taxonomy name. Left null to automatically determine. */ return \apply_filters( 'the_seo_framework_taxonomy_disabled', $disabled, $taxonomy, ); } /** * Determines if the taxonomy supports The SEO Framework. * * Checks if at least one taxonomy objects post type supports The SEO Framework, * and whether the taxonomy is public and rewritable. * * @since 4.0.0 * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Renamed from `is_taxonomy_supported`. * * @param string $taxonomy Optional. The taxonomy name. * @return bool True if at least one post type in taxonomy isn't disabled. */ public static function is_supported( $taxonomy = '' ) { $taxonomy = $taxonomy ?: Query::get_current_taxonomy(); /** * @since 3.1.0 * @since 4.0.0 Now returns only returns false when all post types in the taxonomy aren't supported. * @param bool $post_type Whether the post type is supported * @param string $post_type_evaluated The evaluated post type. */ return (bool) \apply_filters( 'the_seo_framework_supported_taxonomy', $taxonomy && ! static::is_disabled( $taxonomy ) && \in_array( $taxonomy, static::get_all_public(), true ), $taxonomy, ); } /** * Returns a list of all supported taxonomies. * * @since 4.2.0 * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Renamed from `get_supported_taxonomies`. * * @return string[] All supported taxonomies. */ public static function get_all_supported() { return memo() ?? memo( array_values( array_filter( static::get_all_public(), [ static::class, 'is_supported' ], ) ) ); } /** * Gets all taxonomies that could possibly support SEO. * Memoizes the return value. * * @since 4.1.0 * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Renamed from `get_public_taxonomies`. * 3. Is now public. * * @return string[] The taxonomies that are public. */ public static function get_all_public() { return umemo( __METHOD__ ) ?? umemo( __METHOD__, /** * Do not consider using this filter. Properly register your taxonomy, noob. * * @since 4.2.0 * @param string[] $taxonomies The public taxonomies. */ (array) \apply_filters( 'the_seo_framework_public_taxonomies', array_filter( array_unique( array_merge( static::get_all_forced_supported(), // array_values() because get_taxonomies() gives a sequential array. array_values( \get_taxonomies( [ 'public' => true, '_builtin' => false, ] ) ) ) ), 'is_taxonomy_viewable', ) ) ); } /** * Returns a list of builtin public taxonomies. * * @since 4.1.0 * @since 4.2.0 Removed memoization. * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Renamed from `get_forced_supported_taxonomies`. * 3. Is now public. * * @return string[] Forced supported taxonomies */ public static function get_all_forced_supported() { /** * @since 4.1.0 * @param string[] $forced Forced supported taxonomies. */ return (array) \apply_filters( 'the_seo_framework_forced_supported_taxonomies', array_values( \get_taxonomies( [ 'public' => true, '_builtin' => true, ] ) ), ); } /** * Returns a list of post types shared with the taxonomy. * * @since 4.0.0 * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Renamed from `get_post_types_from_taxonomy`. * * @param string $taxonomy Optional. The taxonomy to check. Defaults to current screen/query taxonomy. * @return array List of post types. */ public static function get_post_types( $taxonomy = '' ) { $taxonomy = $taxonomy ?: Query::get_current_taxonomy(); $tax = $taxonomy ? \get_taxonomy( $taxonomy ) : null; return $tax->object_type ?? []; } /** * Returns hierarchical taxonomies for post type. * * @since 3.0.0 * @since 4.0.5 The `$post_type` fallback now uses a real query ID, instead of `$GLOBALS['post']`. * @since 4.1.0 Now filters taxonomies more graciously--expecting broken taxonomies returned in the filter. * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Renamed from `get_hierarchical_taxonomies_as`. * * @param string $get What to get. Accepts 'names' or 'objects'. * @param string $post_type The post type. Will default to current post type. * @return object[]|string[] The post type taxonomy objects or names. */ public static function get_hierarchical( $get = 'objects', $post_type = '' ) { $post_type = $post_type ?: Query::get_current_post_type(); if ( ! $post_type ) return []; $taxonomies = array_filter( \get_object_taxonomies( $post_type, 'objects' ), fn( $t ) => ! empty( $t->hierarchical ), ); // If names isn't $get, assume objects. return 'names' === $get ? array_keys( $taxonomies ) : $taxonomies; } /** * Returns the taxonomy type object label. Either plural or singular. * * @since 3.1.0 * @since 5.0.0 1. Moved from `\The_SEO_Framework\Load`. * 2. Renamed from `get_taxonomy_label`. * 3. The first parameter is now optional. * * @param string $taxonomy The taxonomy. * @param bool $singular Whether to get the singlural or plural name. * @return string The Taxonomy Type name/label, if found. */ public static function get_label( $taxonomy = '', $singular = true ) { $taxonomy = $taxonomy ?: Query::get_current_taxonomy(); $tax = $taxonomy ? \get_taxonomy( $taxonomy ) : null; return $tax->labels->{ $singular ? 'singular_name' : 'name' } ?? ''; } }
Cokiee Shell Web 1.0, Coded By Razor
Neueste Kommentare