236 lines
5.0 KiB
PHP
236 lines
5.0 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* WPSEO plugin file.
|
||
|
*
|
||
|
* @package WPSEO\Admin
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Class WPSEO_Taxonomy_Tab.
|
||
|
*
|
||
|
* Contains the basics for each class extending this one.
|
||
|
*/
|
||
|
class WPSEO_Taxonomy_Fields {
|
||
|
|
||
|
/**
|
||
|
* Returns the taxonomy fields.
|
||
|
*
|
||
|
* @param string $field_group The field group.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
public function get( $field_group ) {
|
||
|
$fields = [];
|
||
|
|
||
|
switch ( $field_group ) {
|
||
|
case 'content':
|
||
|
$fields = $this->get_content_fields();
|
||
|
break;
|
||
|
case 'settings':
|
||
|
$fields = $this->get_settings_fields();
|
||
|
break;
|
||
|
case 'social':
|
||
|
$fields = $this->get_social_fields();
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
return $this->filter_hidden_fields( $fields );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns array with the fields for the general tab.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
protected function get_content_fields() {
|
||
|
$fields = [
|
||
|
'title' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'desc' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'linkdex' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'content_score' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'inclusive_language_score' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'focuskw' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'is_cornerstone' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
];
|
||
|
|
||
|
/**
|
||
|
* Filter: 'wpseo_taxonomy_content_fields' - Adds the possibility to register additional content fields.
|
||
|
*
|
||
|
* @api array - The additional fields.
|
||
|
*/
|
||
|
$additional_fields = apply_filters( 'wpseo_taxonomy_content_fields', [] );
|
||
|
|
||
|
return array_merge( $fields, $additional_fields );
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns array with the fields for the settings tab.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
protected function get_settings_fields() {
|
||
|
return [
|
||
|
'noindex' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'bctitle' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => ( WPSEO_Options::get( 'breadcrumbs-enable' ) !== true ),
|
||
|
],
|
||
|
'canonical' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returning the fields for the social media tab.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
protected function get_social_fields() {
|
||
|
$fields = [];
|
||
|
|
||
|
if ( WPSEO_Options::get( 'opengraph', false ) === true ) {
|
||
|
$fields = [
|
||
|
'opengraph-title' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'opengraph-description' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'opengraph-image' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'opengraph-image-id' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
if ( WPSEO_Options::get( 'twitter', false ) === true ) {
|
||
|
$fields = array_merge(
|
||
|
$fields,
|
||
|
[
|
||
|
'twitter-title' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'twitter-description' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'twitter-image' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
'twitter-image-id' => [
|
||
|
'label' => '',
|
||
|
'description' => '',
|
||
|
'type' => 'hidden',
|
||
|
'options' => '',
|
||
|
'hide' => false,
|
||
|
],
|
||
|
]
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return $fields;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Filter the hidden fields.
|
||
|
*
|
||
|
* @param array $fields Array with the form fields that has will be filtered.
|
||
|
*
|
||
|
* @return array
|
||
|
*/
|
||
|
protected function filter_hidden_fields( array $fields ) {
|
||
|
foreach ( $fields as $field_name => $field_options ) {
|
||
|
if ( ! empty( $field_options['hide'] ) ) {
|
||
|
unset( $fields[ $field_name ] );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return $fields;
|
||
|
}
|
||
|
}
|