123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- /**
- * WPSEO plugin file.
- *
- * @package WPSEO\Admin
- */
- /**
- * This class parses all the values for the general tab in the Yoast SEO settings metabox.
- */
- class WPSEO_Taxonomy_Settings_Fields extends WPSEO_Taxonomy_Fields {
- /**
- * Options array for the no-index options, including translated labels.
- *
- * @var array
- */
- private $no_index_options = [];
- /**
- * The WPSEO_Taxonomy_Settings_Fields class constructor.
- *
- * @param stdClass $term The current taxonomy.
- */
- public function __construct( $term ) {
- parent::__construct( $term );
- $this->translate_meta_options();
- }
- /**
- * Returns array with the fields for the General tab.
- *
- * @return array Fields to be used on the General tab.
- */
- public function get() {
- $labels = $this->get_taxonomy_labels();
- $fields = [
- 'noindex' => $this->get_field_config(
- /* translators: %s = taxonomy name. */
- esc_html( sprintf( __( 'Allow search engines to show this %s in search results?', 'wordpress-seo' ), $labels->singular_name ) ),
- '',
- 'select',
- $this->get_noindex_options()
- ),
- 'bctitle' => $this->get_field_config(
- __( 'Breadcrumbs Title', 'wordpress-seo' ),
- esc_html__( 'The Breadcrumbs Title is used in the breadcrumbs where this taxonomy appears.', 'wordpress-seo' ),
- 'text',
- '',
- ( WPSEO_Options::get( 'breadcrumbs-enable' ) !== true )
- ),
- 'canonical' => $this->get_field_config(
- __( 'Canonical URL', 'wordpress-seo' ),
- esc_html__( 'The canonical link is shown on the archive page for this term.', 'wordpress-seo' )
- ),
- ];
- return $this->filter_hidden_fields( $fields );
- }
- /**
- * Translate options text strings for use in the select fields.
- *
- * {@internal IMPORTANT: if you want to add a new string (option) somewhere, make sure you add
- * that array key to the main options definition array in the class WPSEO_Taxonomy_Meta() as well!!!!}}
- */
- private function translate_meta_options() {
- $this->no_index_options = WPSEO_Taxonomy_Meta::$no_index_options;
- /* translators: %1$s expands to the taxonomy name %2$s expands to the current taxonomy index value */
- $this->no_index_options['default'] = __( '%2$s (current default for %1$s)', 'wordpress-seo' );
- $this->no_index_options['index'] = __( 'Yes', 'wordpress-seo' );
- $this->no_index_options['noindex'] = __( 'No', 'wordpress-seo' );
- }
- /**
- * Getting the data for the noindex fields.
- *
- * @return array Array containing the no_index options.
- */
- private function get_noindex_options() {
- $labels = $this->get_taxonomy_labels();
- $noindex_options['options'] = $this->no_index_options;
- $noindex_options['options']['default'] = sprintf( $noindex_options['options']['default'], $labels->name, $this->get_robot_index() );
- return $noindex_options;
- }
- /**
- * Retrieve the taxonomies plural for use in sentences.
- *
- * @return object Object containing the taxonomy's labels.
- */
- private function get_taxonomy_labels() {
- $taxonomy = get_taxonomy( $this->term->taxonomy );
- return $taxonomy->labels;
- }
- /**
- * Returns the current robot index value for the taxonomy
- *
- * @return string
- */
- private function get_robot_index() {
- $robot_index = $this->no_index_options['index'];
- $index_option = 'noindex-tax-' . $this->term->taxonomy;
- if ( WPSEO_Options::get( $index_option, false ) ) {
- $robot_index = $this->no_index_options['noindex'];
- }
- return $robot_index;
- }
- }
|