���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!class-yoast-integration-toggles.php000066600000013402151735344630013521 0ustar00toggles === null ) { $this->toggles = $this->load_toggles(); } return $this->toggles; } /** * Loads the available integration toggles. * * Also ensures that the toggles are all Yoast_Feature_Toggle instances and sorted by their order value. * * @return array List of sorted Yoast_Feature_Toggle instances. */ protected function load_toggles() { $integration_toggles = [ (object) [ /* translators: %s: 'Semrush' */ 'name' => sprintf( __( '%s integration', 'wordpress-seo' ), 'Semrush' ), 'setting' => 'semrush_integration_active', 'label' => sprintf( /* translators: %s: 'Semrush' */ __( 'The %s integration offers suggestions and insights for keywords related to the entered focus keyphrase.', 'wordpress-seo' ), 'Semrush' ), 'order' => 10, ], (object) [ /* translators: %s: Algolia. */ 'name' => sprintf( esc_html__( '%s integration', 'wordpress-seo' ), 'Algolia' ), 'premium' => true, 'setting' => 'algolia_integration_active', 'label' => __( 'Improve the quality of your site search! Automatically helps your users find your cornerstone and most important content in your internal search results. It also removes noindexed posts & pages from your site’s search results.', 'wordpress-seo' ), /* translators: %s: Algolia. */ 'read_more_label' => sprintf( __( 'Find out more about our %s integration.', 'wordpress-seo' ), 'Algolia' ), 'read_more_url' => 'https://yoa.st/4eu', 'premium_url' => 'https://yoa.st/4ex', 'premium_upsell_url' => 'https://yoa.st/get-algolia-integration', 'order' => 25, ], ]; /** * Filter to add integration toggles from add-ons. * * @param array $integration_toggles Array with integration toggle objects where each object * should have a `name`, `setting` and `label` property. */ $integration_toggles = apply_filters( 'wpseo_integration_toggles', $integration_toggles ); $integration_toggles = array_map( [ $this, 'ensure_toggle' ], $integration_toggles ); usort( $integration_toggles, [ $this, 'sort_toggles_callback' ] ); return $integration_toggles; } /** * Ensures that the passed value is a Yoast_Feature_Toggle. * * @param Yoast_Feature_Toggle|object|array $toggle_data Feature toggle instance, or raw object or array * containing integration toggle data. * @return Yoast_Feature_Toggle Feature toggle instance based on $toggle_data. */ protected function ensure_toggle( $toggle_data ) { if ( $toggle_data instanceof Yoast_Feature_Toggle ) { return $toggle_data; } if ( is_object( $toggle_data ) ) { $toggle_data = get_object_vars( $toggle_data ); } return new Yoast_Feature_Toggle( $toggle_data ); } /** * Callback for sorting integration toggles by their order. * * {@internal Once the minimum PHP version goes up to PHP 7.0, the logic in the function * can be replaced with the spaceship operator `<=>`.} * * @param Yoast_Feature_Toggle $feature_a Feature A. * @param Yoast_Feature_Toggle $feature_b Feature B. * * @return int An integer less than, equal to, or greater than zero indicating respectively * that feature A is considered to be less than, equal to, or greater than feature B. */ protected function sort_toggles_callback( Yoast_Feature_Toggle $feature_a, Yoast_Feature_Toggle $feature_b ) { return ( $feature_a->order - $feature_b->order ); } } class-yoast-input-select.php000066600000005645151735344630012162 0ustar00select_id = $select_id; $this->select_name = $select_name; $this->select_options = $select_options; $this->selected_option = $selected_option; } /** * Print the rendered view. * * @return void */ public function output_html() { // Extract it, because we want each value accessible via a variable instead of accessing it as an array. extract( $this->get_select_values() ); require WPSEO_PATH . 'admin/views/form/select.php'; } /** * Return the rendered view. * * @return string */ public function get_html() { ob_start(); $this->output_html(); $rendered_output = ob_get_contents(); ob_end_clean(); return $rendered_output; } /** * Add an attribute to the attributes property. * * @param string $attribute The name of the attribute to add. * @param string $value The value of the attribute. * * @return void */ public function add_attribute( $attribute, $value ) { $this->select_attributes[ $attribute ] = $value; } /** * Return the set fields for the select. * * @return array */ private function get_select_values() { return [ 'id' => $this->select_id, 'name' => $this->select_name, 'attributes' => $this->get_attributes(), 'options' => $this->select_options, 'selected' => $this->selected_option, ]; } /** * Return the attribute string, when there are attributes set. * * @return string */ private function get_attributes() { $attributes = $this->select_attributes; if ( ! empty( $attributes ) ) { array_walk( $attributes, [ $this, 'parse_attribute' ] ); return implode( ' ', $attributes ) . ' '; } return ''; } /** * Get an attribute from the attributes. * * @param string $value The value of the attribute. * @param string $attribute The attribute to look for. * * @return void */ private function parse_attribute( &$value, $attribute ) { $value = sprintf( '%s="%s"', sanitize_key( $attribute ), esc_attr( $value ) ); } } user-profile.php000066600000010404151735344630007707 0ustar00



ID ) === 'on' ) ? 'checked' : ''; ?> />
ID ) === 'on' ) ? 'checked' : ''; ?> />

ID ) === 'on' ) ? 'checked' : ''; ?> />

ID ) === 'on' ) ? 'checked' : ''; ?> />

redirects.php000066600000000364151735344630007263 0ustar00
tool-import-export.php000066600000010314151735344630011077 0ustar00import(); } /** * Allow custom import actions. * * @param WPSEO_Import_Status $yoast_seo_import Contains info about the handled import. */ $yoast_seo_import = apply_filters( 'wpseo_handle_import', $yoast_seo_import ); if ( $yoast_seo_import ) { $yoast_seo_message = ''; if ( $yoast_seo_import->status instanceof WPSEO_Import_Status ) { $yoast_seo_message = $yoast_seo_import->status->get_msg(); } /** * Allow customization of import/export message. * * @param string $yoast_seo_msg The message. */ $yoast_seo_msg = apply_filters( 'wpseo_import_message', $yoast_seo_message ); if ( ! empty( $yoast_seo_msg ) ) { $yoast_seo_status = 'error'; if ( $yoast_seo_import->status->status ) { $yoast_seo_status = 'updated'; } $yoast_seo_class = 'message ' . $yoast_seo_status; echo '

', esc_html( $yoast_seo_msg ), '

'; } } $yoast_seo_tabs = [ 'wpseo-import' => [ 'label' => __( 'Import settings', 'wordpress-seo' ), ], 'wpseo-export' => [ 'label' => __( 'Export settings', 'wordpress-seo' ), ], 'import-seo' => [ 'label' => __( 'Import from other SEO plugins', 'wordpress-seo' ), ], ]; ?>

$tab ) { printf( '
', esc_attr( $identifier ) ); require_once WPSEO_PATH . 'admin/views/tabs/tool/' . $identifier . '.php'; echo '
'; } /** * Allow adding a custom import tab. */ do_action( 'wpseo_import_tab_content' ); tool-file-editor.php000066600000015361151735344630010460 0ustar00admin_header( false, 'wpseo_ms' ); } else { $action_url = admin_url( 'admin.php?page=wpseo_tools&tool=file-editor' ); } if ( isset( $msg ) && ! empty( $msg ) ) { echo '

', esc_html( $msg ), '

'; } // N.B.: "robots.txt" is a fixed file name and should not be translatable. echo '

robots.txt

'; if ( ! file_exists( $robots_file ) ) { if ( is_writable( $home_path ) ) { echo '
'; wp_nonce_field( 'wpseo_create_robots', '_wpnonce', true, true ); echo '

'; printf( /* translators: %s expands to robots.txt. */ esc_html__( 'You don\'t have a %s file, create one here:', 'wordpress-seo' ), 'robots.txt' ); echo '

'; printf( '', sprintf( /* translators: %s expands to robots.txt. */ esc_attr__( 'Create %s file', 'wordpress-seo' ), 'robots.txt' ) ); echo '
'; } else { echo '

'; printf( /* translators: %s expands to robots.txt. */ esc_html__( 'If you had a %s file and it was editable, you could edit it from here.', 'wordpress-seo' ), 'robots.txt' ); echo '

'; } } else { $f = fopen( $robots_file, 'r' ); $content = ''; if ( filesize( $robots_file ) > 0 ) { $content = fread( $f, filesize( $robots_file ) ); } if ( ! is_writable( $robots_file ) ) { echo '

'; printf( /* translators: %s expands to robots.txt. */ esc_html__( 'If your %s were writable, you could edit it from here.', 'wordpress-seo' ), 'robots.txt' ); echo '

'; echo '
'; } else { echo '
'; wp_nonce_field( 'wpseo-robotstxt', '_wpnonce', true, true ); echo ''; echo '
'; printf( '
', sprintf( /* translators: %s expands to robots.txt. */ esc_attr__( 'Save changes to %s', 'wordpress-seo' ), 'robots.txt' ) ); echo '
'; } } if ( ! WPSEO_Utils::is_nginx() ) { echo '

'; printf( /* translators: %s expands to ".htaccess". */ esc_html__( '%s file', 'wordpress-seo' ), '.htaccess' ); echo '

'; if ( file_exists( $ht_access_file ) ) { $f = fopen( $ht_access_file, 'r' ); $contentht = ''; if ( filesize( $ht_access_file ) > 0 ) { $contentht = fread( $f, filesize( $ht_access_file ) ); } if ( ! is_writable( $ht_access_file ) ) { echo '

'; printf( /* translators: %s expands to ".htaccess". */ esc_html__( 'If your %s were writable, you could edit it from here.', 'wordpress-seo' ), '.htaccess' ); echo '

'; echo '
'; } else { echo '
'; wp_nonce_field( 'wpseo-htaccess', '_wpnonce', true, true ); echo ''; echo '
'; printf( '
', sprintf( /* translators: %s expands to ".htaccess". */ esc_attr__( 'Save changes to %s', 'wordpress-seo' ), '.htaccess' ) ); echo '
'; } } else { echo '

'; printf( /* translators: %s expands to ".htaccess". */ esc_html__( 'If you had a %s file and it was editable, you could edit it from here.', 'wordpress-seo' ), '.htaccess' ); echo '

'; } } if ( is_multisite() ) { $yform->admin_footer( false ); } tabs/network/features.php000066600000007300151735344630011534 0ustar00get_all(); ?>

helpers->product->is_premium(); $premium_version = YoastSEO()->helpers->product->get_premium_version(); if ( $feature->premium && $feature->premium_version ) { $not_supported_in_current_premium_version = $is_premium && version_compare( $premium_version, $feature->premium_version, '<' ); if ( $not_supported_in_current_premium_version ) { continue; } } $help_text = esc_html( $feature->label ); if ( ! empty( $feature->extra ) ) { $help_text .= ' ' . $feature->extra; } if ( ! empty( $feature->read_more_label ) ) { $url = $feature->read_more_url; if ( ! empty( $feature->premium ) && $feature->premium === true ) { $url = $feature->premium_url; } $help_text .= sprintf( '%2$s', esc_url( WPSEO_Shortlinker::get( $url ) ), esc_html( $feature->read_more_label ) ); } $feature_help = new WPSEO_Admin_Help_Panel( WPSEO_Option::ALLOW_KEY_PREFIX . $feature->setting, /* translators: Hidden accessibility text; %s expands to a feature's name. */ sprintf( esc_html__( 'Help on: %s', 'wordpress-seo' ), esc_html( $feature->name ) ), $help_text ); $name = $feature->name; if ( ! empty( $feature->premium ) && $feature->premium === true ) { $name .= ' ' . new Premium_Badge_Presenter( $feature->name ); } if ( ! empty( $feature->in_beta ) && $feature->in_beta === true ) { $name .= ' ' . new Beta_Badge_Presenter( $feature->name ); } $disabled = false; $show_premium_upsell = false; $premium_upsell_url = ''; $note_when_disabled = ''; if ( $feature->premium === true && YoastSEO()->helpers->product->is_premium() === false ) { $disabled = true; $show_premium_upsell = true; $premium_upsell_url = WPSEO_Shortlinker::get( $feature->premium_upsell_url ); } $preserve_disabled_value = false; if ( $disabled ) { $preserve_disabled_value = true; } $yform->toggle_switch( WPSEO_Option::ALLOW_KEY_PREFIX . $feature->setting, [ 'on' => __( 'Allow Control', 'wordpress-seo' ), 'off' => __( 'Disable', 'wordpress-seo' ), ], $name, $feature_help->get_button_html() . $feature_help->get_panel_html(), [ 'disabled' => $disabled, 'preserve_disabled_value' => $preserve_disabled_value, 'show_premium_upsell' => $show_premium_upsell, 'premium_upsell_url' => $premium_upsell_url, 'note_when_disabled' => $note_when_disabled, ] ); } ?>
hidden( 'show_onboarding_notice', 'wpseo_show_onboarding_notice' ); tabs/network/integrations.php000066600000006621151735344630012431 0ustar00get_all(); ?>

label ); if ( ! empty( $integration->extra ) ) { $help_text .= ' ' . $integration->extra; } if ( ! empty( $integration->read_more_label ) ) { $help_text .= ' '; $help_text .= sprintf( '%2$s', esc_url( WPSEO_Shortlinker::get( $integration->read_more_url ) ), esc_html( $integration->read_more_label ) ); } $feature_help = new WPSEO_Admin_Help_Panel( WPSEO_Option::ALLOW_KEY_PREFIX . $integration->setting, /* translators: Hidden accessibility text; %s expands to an integration's name. */ sprintf( esc_html__( 'Help on: %s', 'wordpress-seo' ), esc_html( $integration->name ) ), $help_text ); $name = $integration->name; if ( ! empty( $integration->premium ) && $integration->premium === true ) { $name .= ' ' . new Premium_Badge_Presenter( $integration->name ); } if ( ! empty( $integration->new ) && $integration->new === true ) { $name .= ' ' . new Badge_Presenter( $integration->name ); } $disabled = $integration->disabled; $show_premium_upsell = false; $premium_upsell_url = ''; if ( $integration->premium === true && YoastSEO()->helpers->product->is_premium() === false ) { $disabled = true; $show_premium_upsell = true; $premium_upsell_url = WPSEO_Shortlinker::get( $integration->premium_upsell_url ); } $preserve_disabled_value = false; if ( $disabled ) { $preserve_disabled_value = true; } $yform->toggle_switch( WPSEO_Option::ALLOW_KEY_PREFIX . $integration->setting, [ 'on' => __( 'Allow Control', 'wordpress-seo' ), 'off' => __( 'Disable', 'wordpress-seo' ), ], $name, $feature_help->get_button_html() . $feature_help->get_panel_html(), [ 'disabled' => $disabled, 'preserve_disabled_value' => $preserve_disabled_value, 'show_premium_upsell' => $show_premium_upsell, 'premium_upsell_url' => $premium_upsell_url, ] ); do_action( 'Yoast\WP\SEO\admin_network_integration_after', $integration ); } ?>
hidden( 'show_onboarding_notice', 'wpseo_show_onboarding_notice' ); tabs/network/restore-site.php000066600000001637151735344630012352 0ustar00' . esc_html__( 'Using this form you can reset a site to the default SEO settings.', 'wordpress-seo' ) . '

'; if ( get_blog_count() <= 100 ) { $network_admin = new Yoast_Network_Admin(); $yform->select( 'site_id', __( 'Site ID', 'wordpress-seo' ), $network_admin->get_site_choices( false, true ) ); } else { $yform->textinput( 'site_id', __( 'Site ID', 'wordpress-seo' ) ); } wp_nonce_field( 'wpseo-network-restore', 'restore_site_nonce', false ); echo ''; tabs/network/crawl-settings.php000066600000003207151735344630012666 0ustar00get_all(); ?>

'; printf( /* translators: %1$s opens the link to the Yoast.com article about Crawl settings, %2$s closes the link, */ esc_html__( '%1$sLearn more about crawl settings.%2$s', 'wordpress-seo' ), '', '' ); echo '

'; /** * Fires when displaying the crawl cleanup network tab. * * @param Yoast_Form $yform The yoast form object. */ do_action( 'wpseo_settings_tab_crawl_cleanup_network', $yform ); ?>
hidden( 'show_onboarding_notice', 'wpseo_show_onboarding_notice' ); tabs/network/general.php000066600000004026151735344630011335 0ustar00'; /* * {@internal Important: Make sure the options added to the array here are in line with the * options set in the WPSEO_Option_MS::$allowed_access_options property.}} */ $yform->select( 'access', /* translators: %1$s expands to Yoast SEO */ sprintf( __( 'Who should have access to the %1$s settings', 'wordpress-seo' ), 'Yoast SEO' ), [ 'admin' => __( 'Site Admins (default)', 'wordpress-seo' ), 'superadmin' => __( 'Super Admins only', 'wordpress-seo' ), ] ); if ( get_blog_count() <= 100 ) { $network_admin = new Yoast_Network_Admin(); $yform->select( 'defaultblog', __( 'New sites in the network inherit their SEO settings from this site', 'wordpress-seo' ), $network_admin->get_site_choices( true, true ) ); echo '

' . esc_html__( 'Choose the site whose settings you want to use as default for all sites that are added to your network. If you choose \'None\', the normal plugin defaults will be used.', 'wordpress-seo' ) . '

'; } else { $yform->textinput( 'defaultblog', __( 'New sites in the network inherit their SEO settings from this site', 'wordpress-seo' ) ); echo '

'; printf( /* translators: 1: link open tag; 2: link close tag. */ esc_html__( 'Enter the %1$sSite ID%2$s for the site whose settings you want to use as default for all sites that are added to your network. Leave empty for none (i.e. the normal plugin defaults will be used).', 'wordpress-seo' ), '', '' ); echo '

'; } echo '

' . esc_html__( 'Take note:', 'wordpress-seo' ) . ' ' . esc_html__( 'Privacy sensitive (FB admins and such), theme specific (title rewrite) and a few very site specific settings will not be imported to new sites.', 'wordpress-seo' ) . '

'; echo ''; tabs/dashboard/dashboard.php000066600000002047151735344630012106 0ustar00

tabs/dashboard/first-time-configuration.php000066600000000371151735344630015105 0ustar00'; tabs/dashboard/site-analysis.php000066600000000653151735344630012745 0ustar00



tabs/tool/wpseo-export.php000066600000002572151735344630011664 0ustar00export(); return; } $wpseo_export_phrase = sprintf( /* translators: %1$s expands to Yoast SEO */ __( 'Export your %1$s settings here, to copy them on another site.', 'wordpress-seo' ), 'Yoast SEO' ); ?>

tabs/tool/import-seo.php000066600000011145151735344630011302 0ustar00detect(); if ( count( $import_check->needs_import ) === 0 ) { echo '

', esc_html__( 'Import from other SEO plugins', 'wordpress-seo' ), '

'; echo '

'; printf( /* translators: %s expands to Yoast SEO */ esc_html__( '%s did not detect any plugin data from plugins it can import from.', 'wordpress-seo' ), 'Yoast SEO' ); echo '

'; return; } /** * Creates a select box given a name and plugins array. * * @param string $name Name field for the select field. * @param array $plugins An array of plugins and classes. * * @return void */ function wpseo_import_external_select( $name, $plugins ) { esc_html_e( 'Plugin: ', 'wordpress-seo' ); echo ''; } ?>

needs_import ); ?>

', '' ); ?>

needs_import ); ?>
paper-collapsible.php000066600000006023151735344630010673 0ustar00
> %4$s%5$s ', esc_attr( 'collapsible-header ' . $collapsible_header_class ), // phpcs:ignore WordPress.Security.EscapeOutput -- $button_id_attr is escaped above. $button_id_attr, esc_attr( $collapsible_config['expanded'] ), // phpcs:ignore WordPress.Security.EscapeOutput -- $help_text is an instance of WPSEO_Admin_Help_Panel, which escapes it's own output. $help_text->get_button_html(), esc_html( $title ) . wp_kses_post( $title_after ), wp_kses_post( $collapsible_config['toggle_icon'] ) ); } else { echo '

', esc_html( $title ), wp_kses_post( $title_after ), // phpcs:ignore WordPress.Security.EscapeOutput -- $help_text is an instance of WPSEO_Admin_Help_Panel, which escapes it's own output. $help_text->get_button_html(), '

'; } } ?> get_panel_html(); $container_id_attr = ''; if ( ! empty( $paper_id ) ) { $container_id_attr = sprintf( ' id="%s"', esc_attr( $paper_id_prefix . $paper_id . '-container' ) ); } printf( '%3$s
', // phpcs:ignore WordPress.Security.EscapeOutput -- $container_id_attr is escaped above. $container_id_attr, esc_attr( 'paper-container ' . $collapsible_config['class'] ), $content ); ?> tool-bulk-editor.php000066600000006206151735344630010474 0ustar00 $yoast_free_input_fields, 'nonce' => wp_create_nonce( 'bulk-editor-table' ), ]; $wpseo_bulk_titles_table = new WPSEO_Bulk_Title_Editor_List_Table( $yoast_bulk_editor_arguments ); $wpseo_bulk_description_table = new WPSEO_Bulk_Description_List_Table( $yoast_bulk_editor_arguments ); $yoast_free_screen_reader_content = [ 'heading_views' => __( 'Filter posts list', 'wordpress-seo' ), 'heading_pagination' => __( 'Posts list navigation', 'wordpress-seo' ), 'heading_list' => __( 'Posts list', 'wordpress-seo' ), ]; get_current_screen()->set_screen_reader_content( $yoast_free_screen_reader_content ); if ( ! empty( $_REQUEST['_wp_http_referer'] ) && isset( $_SERVER['REQUEST_URI'] ) ) { $request_uri = sanitize_file_name( wp_unslash( $_SERVER['REQUEST_URI'] ) ); wp_redirect( remove_query_arg( [ '_wp_http_referer', '_wpnonce' ], $request_uri ) ); exit; } /** * Renders a bulk editor tab. * * @param WPSEO_Bulk_List_Table $table The table to render. * @param string $id The id for the tab. * * @return void */ function wpseo_get_rendered_tab( $table, $id ) { ?>
show_page(); ?>


partial-notifications-errors.php000066600000002202151735344630013105 0ustar00toggles === null ) { $this->toggles = $this->load_toggles(); } return $this->toggles; } /** * Loads the available feature toggles. * * Also ensures that the toggles are all Yoast_Feature_Toggle instances and sorted by their order value. * * @return array List of sorted Yoast_Feature_Toggle instances. */ protected function load_toggles() { $xml_sitemap_extra = false; if ( WPSEO_Options::get( 'enable_xml_sitemap' ) ) { $xml_sitemap_extra = '' . esc_html__( 'See the XML sitemap.', 'wordpress-seo' ) . ''; } $feature_toggles = [ (object) [ 'name' => __( 'SEO analysis', 'wordpress-seo' ), 'setting' => 'keyword_analysis_active', 'label' => __( 'The SEO analysis offers suggestions to improve the SEO of your text.', 'wordpress-seo' ), 'read_more_label' => __( 'Learn how the SEO analysis can help you rank.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/2ak', 'order' => 10, ], (object) [ 'name' => __( 'Readability analysis', 'wordpress-seo' ), 'setting' => 'content_analysis_active', 'label' => __( 'The readability analysis offers suggestions to improve the structure and style of your text.', 'wordpress-seo' ), 'read_more_label' => __( 'Discover why readability is important for SEO.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/2ao', 'order' => 20, ], (object) [ 'name' => __( 'Inclusive language analysis', 'wordpress-seo' ), 'supported_languages' => Language_Helper::$languages_with_inclusive_language_support, 'setting' => 'inclusive_language_analysis_active', 'label' => __( 'The inclusive language analysis offers suggestions to write more inclusive copy.', 'wordpress-seo' ), 'read_more_label' => __( 'Discover why inclusive language is important for SEO.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/inclusive-language-features-free', 'order' => 25, ], (object) [ 'name' => __( 'Cornerstone content', 'wordpress-seo' ), 'setting' => 'enable_cornerstone_content', 'label' => __( 'The cornerstone content feature lets you to mark and filter cornerstone content on your website.', 'wordpress-seo' ), 'read_more_label' => __( 'Find out how cornerstone content can help you improve your site structure.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/dashboard-help-cornerstone', 'order' => 30, ], (object) [ 'name' => __( 'Text link counter', 'wordpress-seo' ), 'setting' => 'enable_text_link_counter', 'label' => __( 'The text link counter helps you improve your site structure.', 'wordpress-seo' ), 'read_more_label' => __( 'Find out how the text link counter can enhance your SEO.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/2aj', 'order' => 40, ], (object) [ 'name' => __( 'Insights', 'wordpress-seo' ), 'setting' => 'enable_metabox_insights', 'label' => __( 'Find relevant data about your content right in the Insights section in the Yoast SEO metabox. You’ll see what words you use most often and if they’re a match with your keywords! ', 'wordpress-seo' ), 'read_more_label' => __( 'Find out how Insights can help you improve your content.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/4ew', 'premium_url' => 'https://yoa.st/2ai', 'order' => 41, ], (object) [ 'name' => __( 'Link suggestions', 'wordpress-seo' ), 'premium' => true, 'setting' => 'enable_link_suggestions', 'label' => __( 'Get relevant internal linking suggestions — while you’re writing! The link suggestions metabox shows a list of posts on your blog with similar content that might be interesting to link to. ', 'wordpress-seo' ), 'read_more_label' => __( 'Read more about how internal linking can improve your site structure.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/4ev', 'premium_url' => 'https://yoa.st/17g', 'premium_upsell_url' => 'https://yoa.st/get-link-suggestions', 'order' => 42, ], (object) [ 'name' => __( 'XML sitemaps', 'wordpress-seo' ), 'setting' => 'enable_xml_sitemap', /* translators: %s: Yoast SEO */ 'label' => sprintf( __( 'Enable the XML sitemaps that %s generates.', 'wordpress-seo' ), 'Yoast SEO' ), 'read_more_label' => __( 'Read why XML Sitemaps are important for your site.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/2a-', 'extra' => $xml_sitemap_extra, 'after' => $this->sitemaps_toggle_after(), 'order' => 60, ], (object) [ 'name' => __( 'Admin bar menu', 'wordpress-seo' ), 'setting' => 'enable_admin_bar_menu', /* translators: 1: Yoast SEO */ 'label' => sprintf( __( 'The %1$s admin bar menu contains useful links to third-party tools for analyzing pages and makes it easy to see if you have new notifications.', 'wordpress-seo' ), 'Yoast SEO' ), 'order' => 80, ], (object) [ 'name' => __( 'Security: no advanced or schema settings for authors', 'wordpress-seo' ), 'setting' => 'disableadvanced_meta', 'label' => sprintf( /* translators: 1: Yoast SEO, 2: translated version of "Off" */ __( 'The advanced section of the %1$s meta box allows a user to remove posts from the search results or change the canonical. The settings in the schema tab allows a user to change schema meta data for a post. These are things you might not want any author to do. That\'s why, by default, only editors and administrators can do this. Setting to "%2$s" allows all users to change these settings.', 'wordpress-seo' ), 'Yoast SEO', __( 'Off', 'wordpress-seo' ) ), 'order' => 90, ], (object) [ 'name' => __( 'Usage tracking', 'wordpress-seo' ), 'label' => __( 'Usage tracking', 'wordpress-seo' ), 'setting' => 'tracking', 'read_more_label' => sprintf( /* translators: 1: Yoast SEO */ __( 'Allow us to track some data about your site to improve our plugin.', 'wordpress-seo' ), 'Yoast SEO' ), 'read_more_url' => 'https://yoa.st/usage-tracking-2', 'order' => 95, ], (object) [ 'name' => __( 'REST API: Head endpoint', 'wordpress-seo' ), 'setting' => 'enable_headless_rest_endpoints', 'label' => sprintf( /* translators: 1: Yoast SEO */ __( 'This %1$s REST API endpoint gives you all the metadata you need for a specific URL. This will make it very easy for headless WordPress sites to use %1$s for all their SEO meta output.', 'wordpress-seo' ), 'Yoast SEO' ), 'order' => 100, ], (object) [ 'name' => __( 'Enhanced Slack sharing', 'wordpress-seo' ), 'setting' => 'enable_enhanced_slack_sharing', 'label' => __( 'This adds an author byline and reading time estimate to the article’s snippet when shared on Slack.', 'wordpress-seo' ), 'read_more_label' => __( 'Find out how a rich snippet can improve visibility and click-through-rate.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/help-slack-share', 'order' => 105, ], (object) [ 'name' => __( 'IndexNow', 'wordpress-seo' ), 'premium' => true, 'setting' => 'enable_index_now', 'label' => __( 'Automatically ping search engines like Bing and Yandex whenever you publish, update or delete a post.', 'wordpress-seo' ), 'read_more_label' => __( 'Find out how IndexNow can help your site.', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/index-now-read-more', 'premium_url' => 'https://yoa.st/index-now-feature', 'premium_upsell_url' => 'https://yoa.st/get-indexnow', 'order' => 110, ], (object) [ 'name' => __( 'AI title & description generator', 'wordpress-seo' ), 'premium' => true, 'setting' => 'enable_ai_generator', 'label' => __( 'Use the power of Yoast AI to automatically generate compelling titles and descriptions for your posts and pages.', 'wordpress-seo' ), 'read_more_label' => __( 'Learn more', 'wordpress-seo' ), 'read_more_url' => 'https://yoa.st/ai-generator-read-more', 'premium_url' => 'https://yoa.st/ai-generator-feature', 'premium_upsell_url' => 'https://yoa.st/get-ai-generator', 'order' => 115, ], ]; /** * Filter to add feature toggles from add-ons. * * @param array $feature_toggles Array with feature toggle objects where each object * should have a `name`, `setting` and `label` property. */ $feature_toggles = apply_filters( 'wpseo_feature_toggles', $feature_toggles ); $feature_toggles = array_map( [ $this, 'ensure_toggle' ], $feature_toggles ); usort( $feature_toggles, [ $this, 'sort_toggles_callback' ] ); return $feature_toggles; } /** * Returns html for a warning that core sitemaps are enabled when yoast seo sitemaps are disabled. * * @return string HTML string for the warning. */ protected function sitemaps_toggle_after() { $out = ''; return $out; } /** * Ensures that the passed value is a Yoast_Feature_Toggle. * * @param Yoast_Feature_Toggle|object|array $toggle_data Feature toggle instance, or raw object or array * containing feature toggle data. * * @return Yoast_Feature_Toggle Feature toggle instance based on $toggle_data. */ protected function ensure_toggle( $toggle_data ) { if ( $toggle_data instanceof Yoast_Feature_Toggle ) { return $toggle_data; } if ( is_object( $toggle_data ) ) { $toggle_data = get_object_vars( $toggle_data ); } return new Yoast_Feature_Toggle( $toggle_data ); } /** * Callback for sorting feature toggles by their order. * * {@internal Once the minimum PHP version goes up to PHP 7.0, the logic in the function * can be replaced with the spaceship operator `<=>`.} * * @param Yoast_Feature_Toggle $feature_a Feature A. * @param Yoast_Feature_Toggle $feature_b Feature B. * * @return int An integer less than, equal to, or greater than zero indicating respectively * that feature A is considered to be less than, equal to, or greater than feature B. */ protected function sort_toggles_callback( Yoast_Feature_Toggle $feature_a, Yoast_Feature_Toggle $feature_b ) { return ( $feature_a->order - $feature_b->order ); } } form/select.php000066600000002115151735344630007515 0ustar00 partial-notifications-warnings.php000066600000002101151735344630013417 0ustar00 $value ) { if ( property_exists( $this, $key ) ) { $this->$key = $value; } } } /** * Magic isset-er. * * @param string $key Key to check whether a value for it is set. * * @return bool True if set, false otherwise. */ public function __isset( $key ) { return isset( $this->$key ); } /** * Magic getter. * * @param string $key Key to get the value for. * * @return mixed Value for the key, or null if not set. */ public function __get( $key ) { if ( isset( $this->$key ) ) { return $this->$key; } return null; } /** * Checks whether the feature for this toggle is enabled. * * @return bool True if the feature is enabled, false otherwise. */ public function is_enabled() { return (bool) WPSEO_Options::get( $this->setting ); } } js-templates-primary-term.php000066600000002526151735344630012337 0ustar00 interface-yoast-form-element.php000066600000000373151735344630012764 0ustar00