indexables-exclude-taxonomy-integration.php
1.29 KB
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
<?php
namespace Yoast\WP\SEO\Integrations\Admin;
use Yoast\WP\SEO\Conditionals\No_Conditionals;
use Yoast\WP\SEO\Helpers\Options_Helper;
use Yoast\WP\SEO\Integrations\Integration_Interface;
/**
* Indexables_Exclude_Taxonomy_Integration class
*/
class Indexables_Exclude_Taxonomy_Integration implements Integration_Interface {
use No_Conditionals;
/**
* The options helper.
*
* @var Options_Helper
*/
private $options_helper;
/**
* Indexables_Exclude_Taxonomy_Integration constructor.
*
* @param Options_Helper $options_helper The options helper.
*/
public function __construct( Options_Helper $options_helper ) {
$this->options_helper = $options_helper;
}
/**
* {@inheritDoc}
*/
public function register_hooks() {
\add_filter( 'wpseo_indexable_excluded_taxonomies', [ $this, 'exclude_taxonomies_for_indexation' ] );
}
/**
* Exclude the taxonomy from the indexable table.
*
* @param array $excluded_taxonomies The excluded taxonomies.
*
* @return array The excluded post types, including the specific post type.
*/
public function exclude_taxonomies_for_indexation( $excluded_taxonomies ) {
if ( $this->options_helper->get( 'disable-post_format', false ) ) {
return \array_merge( $excluded_taxonomies, [ 'post_format' ] );
}
return $excluded_taxonomies;
}
}