C:\xampp\htdocs\landing\wp-content\plugins\wordpress-seo\src\helpers\indexable-helper.php


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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?php

namespace Yoast\WP\SEO\Helpers;

use 
Yoast\WP\SEO\Actions\Indexing\Indexable_Post_Indexation_Action;
use 
Yoast\WP\SEO\Actions\Indexing\Indexable_Post_Type_Archive_Indexation_Action;
use 
Yoast\WP\SEO\Actions\Indexing\Indexable_Term_Indexation_Action;
use 
Yoast\WP\SEO\Config\Indexing_Reasons;
use 
Yoast\WP\SEO\Models\Indexable;
use 
Yoast\WP\SEO\Repositories\Indexable_Repository;

/**
 * A helper object for indexables.
 */
class Indexable_Helper {

    
/**
     * Represents the indexable repository.
     *
     * @var Indexable_Repository
     */
    
protected $repository;

    
/**
     * Represents the options helper.
     *
     * @var Options_Helper
     */
    
protected $options_helper;

    
/**
     * Represents the environment helper.
     *
     * @var Environment_Helper
     */
    
protected $environment_helper;

    
/**
     * Represents the indexing helper.
     *
     * @var Indexing_Helper
     */
    
protected $indexing_helper;

    
/**
     * Indexable_Helper constructor.
     *
     * @param Options_Helper     $options_helper     The options helper.
     * @param Environment_Helper $environment_helper The environment helper.
     * @param Indexing_Helper    $indexing_helper    The indexing helper.
     */
    
public function __constructOptions_Helper $options_helperEnvironment_Helper $environment_helperIndexing_Helper $indexing_helper ) {
        
$this->options_helper     $options_helper;
        
$this->environment_helper $environment_helper;
        
$this->indexing_helper    $indexing_helper;
    }

    
/**
     * Sets the indexable repository. Done to avoid circular dependencies.
     *
     * @param Indexable_Repository $repository The indexable repository.
     *
     * @required
     */
    
public function set_indexable_repositoryIndexable_Repository $repository ) {
        
$this->repository $repository;
    }

    
/**
     * Returns the page type of an indexable.
     *
     * @param Indexable $indexable The indexable.
     *
     * @return string|false The page type. False if it could not be determined.
     */
    
public function get_page_type_for_indexable$indexable ) {
        switch ( 
$indexable->object_type ) {
            case 
'post':
                
$front_page_id = (int) \get_option'page_on_front' );
                if ( 
$indexable->object_id === $front_page_id ) {
                    return 
'Static_Home_Page';
                }
                
$posts_page_id = (int) \get_option'page_for_posts' );
                if ( 
$indexable->object_id === $posts_page_id ) {
                    return 
'Static_Posts_Page';
                }

                return 
'Post_Type';
            case 
'term':
                return 
'Term_Archive';
            case 
'user':
                return 
'Author_Archive';
            case 
'home-page':
                return 
'Home_Page';
            case 
'post-type-archive':
                return 
'Post_Type_Archive';
            case 
'date-archive':
                return 
'Date_Archive';
            case 
'system-page':
                if ( 
$indexable->object_sub_type === 'search-result' ) {
                    return 
'Search_Result_Page';
                }
                if ( 
$indexable->object_sub_type === '404' ) {
                    return 
'Error_Page';
                }
        }

        return 
false;
    }

    
/**
     * Resets the permalinks of the indexables.
     *
     * @param string      $type    The type of the indexable.
     * @param null|string $subtype The subtype. Can be null.
     * @param string      $reason  The reason that the permalink has been changed.
     */
    
public function reset_permalink_indexables$type null$subtype null$reason Indexing_Reasons::REASON_PERMALINK_SETTINGS ) {
        
$result $this->repository->reset_permalink$type$subtype );

        
$this->indexing_helper->set_reason$reason );

        if ( 
$result !== false && $result ) {
            \
delete_transientIndexable_Post_Indexation_Action::TRANSIENT_CACHE_KEY );
            \
delete_transientIndexable_Post_Type_Archive_Indexation_Action::TRANSIENT_CACHE_KEY );
            \
delete_transientIndexable_Term_Indexation_Action::TRANSIENT_CACHE_KEY );
        }
    }

    
/**
     * Determines whether indexing indexables is appropriate at this time.
     *
     * @return bool Whether or not the indexables should be indexed.
     */
    
public function should_index_indexables() {
        
// Currently the only reason to index is when we're on a production website.
        
return $this->environment_helper->is_production_mode();
    }

    
/**
     * Returns whether or not dynamic permalinks should be used.
     *
     * @return bool Whether or not the dynamic permalinks should be used.
     */
    
public function dynamic_permalinks_enabled() {
        
/**
         * Filters the value of the `dynamic_permalinks` option.
         *
         * @param bool $value The value of the `dynamic_permalinks` option.
         */
        
return (bool) \apply_filters'wpseo_dynamic_permalinks_enabled'$this->options_helper->get'dynamic_permalinks'false ) );
    }

    
/**
     * Sets a boolean to indicate that the indexing of the indexables has completed.
     *
     * @return void
     */
    
public function finish_indexing() {
        
$this->options_helper->set'indexables_indexing_completed'true );
    }
}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586