You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
4.0 KiB
115 lines
4.0 KiB
<?php |
|
/** |
|
* WPSEO plugin file. |
|
* |
|
* @package WPSEO\Admin\Views |
|
*/ |
|
|
|
/** |
|
* Class Yoast_View_Utils. |
|
*/ |
|
class Yoast_View_Utils { |
|
|
|
/** |
|
* Form to use. |
|
* |
|
* @var Yoast_Form |
|
*/ |
|
protected $form; |
|
|
|
/** |
|
* Yoast_View_Utils constructor. |
|
*/ |
|
public function __construct() { |
|
$this->form = Yoast_Form::get_instance(); |
|
} |
|
|
|
/** |
|
* Shows the search results help question mark and help section. |
|
* |
|
* Used for all the Help sections for indexable objects like post types, taxonomies, or archives. |
|
* |
|
* @param string|object $post_type The post type to show the search results help for. |
|
* @param string $help_text_switch Switch the help text to one that's more appropriate |
|
* for the indexable object type the help section is for. |
|
* |
|
* @return object The help panel instance. |
|
*/ |
|
public function search_results_setting_help( $post_type, $help_text_switch = '' ) { |
|
if ( ! is_object( $post_type ) ) { |
|
$post_type = get_post_type_object( $post_type ); |
|
} |
|
|
|
/* translators: 1: expands to an indexable object's name, like a post type or taxonomy; 2: expands to <code>noindex</code>; 3: link open tag; 4: link close tag. */ |
|
$help_text = esc_html__( 'Not showing %1$s in the search results technically means those will have a %2$s robots meta and will be excluded from XML sitemaps. %3$sMore info on the search results settings%4$s.', 'wordpress-seo' ); |
|
|
|
if ( $help_text_switch === 'archive' ) { |
|
/* translators: 1: expands to an indexable object's name, like a post type or taxonomy; 2: expands to <code>noindex</code>; 3: link open tag; 4: link close tag. */ |
|
$help_text = esc_html__( 'Not showing the archive for %1$s in the search results technically means those will have a %2$s robots meta and will be excluded from XML sitemaps. %3$sMore info on the search results settings%4$s.', 'wordpress-seo' ); |
|
} |
|
|
|
$help_panel = new WPSEO_Admin_Help_Panel( |
|
// Sometimes the same post type is used more than once in the same page, we need a unique ID though. |
|
uniqid( 'noindex-' . $post_type->name ), |
|
esc_html__( 'Help on this search results setting', 'wordpress-seo' ), |
|
sprintf( |
|
$help_text, |
|
$post_type->labels->name, |
|
'<code>noindex</code>', |
|
'<a href="' . esc_url( WPSEO_Shortlinker::get( 'https://yoa.st/show-x' ) ) . '" target="_blank" rel="noopener noreferrer">', |
|
'</a>' |
|
) |
|
); |
|
|
|
return $help_panel; |
|
} |
|
|
|
/** |
|
* Shows the search appearance settings for a post type. |
|
* |
|
* @param string|object $post_type The post type to show the search appearance settings for. |
|
* @param bool $paper_style Whether or not the paper style should be shown. |
|
* |
|
* @return void |
|
*/ |
|
public function show_post_type_settings( $post_type, $paper_style = false ) { |
|
if ( ! is_object( $post_type ) ) { |
|
$post_type = get_post_type_object( $post_type ); |
|
} |
|
|
|
$show_post_type_help = $this->search_results_setting_help( $post_type ); |
|
$noindex_option_name = 'noindex-' . $post_type->name; |
|
|
|
$this->form->index_switch( |
|
$noindex_option_name, |
|
$post_type->labels->name, |
|
$show_post_type_help->get_button_html() . $show_post_type_help->get_panel_html() |
|
); |
|
|
|
$this->form->show_hide_switch( |
|
'showdate-' . $post_type->name, |
|
__( 'Date in Snippet Preview', 'wordpress-seo' ) |
|
); |
|
|
|
$this->form->show_hide_switch( |
|
'display-metabox-pt-' . $post_type->name, |
|
/* translators: %1$s expands to Yoast SEO */ |
|
sprintf( __( '%1$s Meta Box', 'wordpress-seo' ), 'Yoast SEO' ) |
|
); |
|
|
|
$recommended_replace_vars = new WPSEO_Admin_Recommended_Replace_Vars(); |
|
$editor_specific_replace_vars = new WPSEO_Admin_Editor_Specific_Replace_Vars(); |
|
|
|
$editor = new WPSEO_Replacevar_Editor( |
|
$this->form, |
|
array( |
|
'title' => 'title-' . $post_type->name, |
|
'description' => 'metadesc-' . $post_type->name, |
|
'page_type_recommended' => $recommended_replace_vars->determine_for_post_type( $post_type->name ), |
|
'page_type_specific' => $editor_specific_replace_vars->determine_for_post_type( $post_type->name ), |
|
'paper_style' => $paper_style, |
|
) |
|
); |
|
$editor->render(); |
|
} |
|
}
|
|
|