1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
<?php
namespace Yoast\WP\SEO\Helpers;
use WP_Taxonomy; use WP_Term; use WPSEO_Taxonomy_Meta;
/** * A helper object for terms. */ class Taxonomy_Helper {
/** * The options helper. * * @var Options_Helper */ private $options;
/** * The string helper. * * @var String_Helper */ private $string;
/** * Taxonomy_Helper constructor. * * @param Options_Helper $options The options helper. * @param String_Helper $string The string helper. * * @codeCoverageIgnore It only sets dependencies. */ public function __construct( Options_Helper $options, String_Helper $string ) { $this->options = $options; $this->string = $string; }
/** * Checks if the requested term is indexable. * * @param string $taxonomy The taxonomy slug. * * @return bool True when taxonomy is set to index. */ public function is_indexable( $taxonomy ) { return ! $this->options->get( 'noindex-tax-' . $taxonomy, false ); }
/** * Returns an array with the public taxonomies. * * @param string $output The output type to use. * * @return string[]|WP_Taxonomy[] Array with all the public taxonomies. * The type depends on the specified output variable. */ public function get_public_taxonomies( $output = 'names' ) { return \get_taxonomies( [ 'public' => true ], $output ); }
/** * Retrieves the term description (without tags). * * @param int $term_id Term ID. * * @return string Term description (without tags). */ public function get_term_description( $term_id ) { return $this->string->strip_all_tags( \term_description( $term_id ) ); }
/** * Retrieves the taxonomy term's meta values. * * @param WP_Term $term Term to get the meta value for. * * @codeCoverageIgnore We have to write test when this method contains own code. * * @return array|bool Array of all the meta data for the term. * False if the term does not exist or the $meta provided is invalid. */ public function get_term_meta( $term ) { return WPSEO_Taxonomy_Meta::get_term_meta( $term, $term->taxonomy, null ); }
/** * Gets the passed taxonomy's slug. * * @param string $taxonomy The name of the taxonomy. * * @return string The slug for the taxonomy. Returns the taxonomy's name if no slug could be found. */ public function get_taxonomy_slug( $taxonomy ) { $taxonomy_object = \get_taxonomy( $taxonomy );
if ( $taxonomy_object && \property_exists( $taxonomy_object, 'rewrite' ) && \is_array( $taxonomy_object->rewrite ) && isset( $taxonomy_object->rewrite['slug'] ) ) { return $taxonomy_object->rewrite['slug']; }
return \strtolower( $taxonomy_object->name ); }
/** * Returns an array with the custom taxonomies. * * @param string $output The output type to use. * * @return string[]|WP_Taxonomy[] Array with all the custom taxonomies. * The type depends on the specified output variable. */ public function get_custom_taxonomies( $output = 'names' ) { return \get_taxonomies( [ '_builtin' => false ], $output ); } }
|