You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.6 KiB
72 lines
1.6 KiB
<?php |
|
/** |
|
* WPSEO plugin file. |
|
* |
|
* @package WPSEO |
|
*/ |
|
|
|
/** |
|
* WPSEO_Custom_Taxonomies. |
|
*/ |
|
class WPSEO_Custom_Taxonomies { |
|
|
|
/** |
|
* Custom taxonomies cache. |
|
* |
|
* @var array |
|
*/ |
|
protected static $custom_taxonomies = null; |
|
|
|
/** |
|
* Gets the names of the custom taxonomies, prepends 'ct_' and 'ct_desc', and returns them in an array. |
|
* |
|
* @return array The custom taxonomy prefixed names. |
|
*/ |
|
public static function get_custom_taxonomies() { |
|
// Use cached value if available. |
|
if ( ! is_null( self::$custom_taxonomies ) ) { |
|
return self::$custom_taxonomies; |
|
} |
|
|
|
self::$custom_taxonomies = array(); |
|
$args = array( |
|
'public' => true, |
|
'_builtin' => false, |
|
); |
|
$custom_taxonomies = get_taxonomies( $args, 'names', 'and' ); |
|
|
|
if ( is_array( $custom_taxonomies ) ) { |
|
foreach ( $custom_taxonomies as $custom_taxonomy ) { |
|
array_push( |
|
self::$custom_taxonomies, |
|
self::add_custom_taxonomies_prefix( $custom_taxonomy ), |
|
self::add_custom_taxonomies_description_prefix( $custom_taxonomy ) |
|
); |
|
} |
|
} |
|
|
|
return self::$custom_taxonomies; |
|
} |
|
|
|
/** |
|
* Adds the ct_ prefix to a taxonomy. |
|
* |
|
* @param string $taxonomy The taxonomy to prefix. |
|
* |
|
* @return string The prefixed taxonomy. |
|
*/ |
|
private static function add_custom_taxonomies_prefix( $taxonomy ) { |
|
return 'ct_' . $taxonomy; |
|
} |
|
|
|
/** |
|
* Adds the ct_desc_ prefix to a taxonomy. |
|
* |
|
* @param string $taxonomy The taxonomy to prefix. |
|
* |
|
* @return string The prefixed taxonomy. |
|
*/ |
|
private static function add_custom_taxonomies_description_prefix( $taxonomy ) { |
|
return 'ct_desc_' . $taxonomy; |
|
} |
|
}
|
|
|