PluginProbe ʕ •ᴥ•ʔ
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 24.5
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v24.5
27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 19.1 19.10 19.11 19.12 19.13 19.14 19.2 19.3 19.4 19.5 19.5.1 19.6 19.6.1 19.7 19.7.1 19.7.2 19.8 19.9 20.0 20.1 20.10 20.11 20.12 20.13 20.2 20.2.1 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21.0 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.8.1 21.9 21.9.1 22.0 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23.0 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24.0 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.8.1 24.9 25.0 25.1 25.2 25.3 25.3.1 25.4 25.5 25.6 25.7 25.8 25.9 26.0 26.1 26.1.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 26.9 27.0 27.1 27.1.1 27.2 27.3 27.4
wordpress-seo / admin / metabox / class-metabox-editor.php
wordpress-seo / admin / metabox Last commit date
class-abstract-sectioned-metabox-tab.php 2 years ago class-metabox-analysis-inclusive-language.php 2 years ago class-metabox-analysis-readability.php 7 years ago class-metabox-analysis-seo.php 7 years ago class-metabox-collapsible.php 6 years ago class-metabox-collapsibles-section.php 2 years ago class-metabox-editor.php 2 years ago class-metabox-form-tab.php 6 years ago class-metabox-null-tab.php 5 years ago class-metabox-section-additional.php 5 years ago class-metabox-section-inclusive-language.php 2 years ago class-metabox-section-react.php 6 years ago class-metabox-section-readability.php 2 years ago class-metabox.php 1 year ago interface-metabox-analysis.php 7 years ago interface-metabox-section.php 2 years ago interface-metabox-tab.php 8 years ago
class-metabox-editor.php
86 lines
1 <?php
2 /**
3 * WPSEO plugin file.
4 *
5 * @package WPSEO\Admin\Metabox
6 */
7
8 /**
9 * Handles all things with the metabox in combination with the WordPress editor.
10 */
11 class WPSEO_Metabox_Editor {
12
13 /**
14 * Registers hooks to WordPress.
15 *
16 * @codeCoverageIgnore
17 *
18 * @return void
19 */
20 public function register_hooks() {
21 // For the Classic editor.
22 add_filter( 'mce_css', [ $this, 'add_css_inside_editor' ] );
23 // For the Block/Gutenberg editor.
24 // See https://github.com/danielbachhuber/gutenberg-migration-guide/blob/master/filter-mce-css.md.
25 add_action( 'enqueue_block_editor_assets', [ $this, 'add_editor_styles' ] );
26
27 add_filter( 'tiny_mce_before_init', [ $this, 'add_custom_element' ] );
28 }
29
30 /**
31 * Adds our inside the editor CSS file to the list of CSS files to be loaded inside the editor.
32 *
33 * @param string $css_files The CSS files that WordPress wants to load inside the editor.
34 * @return string The CSS files WordPress wants to load and our CSS file.
35 */
36 public function add_css_inside_editor( $css_files ) {
37 $asset_manager = new WPSEO_Admin_Asset_Manager();
38 $styles = $asset_manager->special_styles();
39 $inside_editor = $styles['inside-editor'];
40
41 $asset_location = new WPSEO_Admin_Asset_SEO_Location( WPSEO_FILE );
42 $url = $asset_location->get_url( $inside_editor, WPSEO_Admin_Asset::TYPE_CSS );
43
44 if ( $css_files === '' ) {
45 $css_files = $url;
46 }
47 else {
48 $css_files .= ',' . $url;
49 }
50
51 return $css_files;
52 }
53
54 /**
55 * Enqueues the CSS to use in the TinyMCE editor.
56 *
57 * @return void
58 */
59 public function add_editor_styles() {
60 $asset_manager = new WPSEO_Admin_Asset_Manager();
61 $asset_manager->enqueue_style( 'inside-editor' );
62 }
63
64 /**
65 * Adds a custom element to the tinyMCE editor that we need for marking the content.
66 *
67 * @param array $tinymce_config The tinyMCE config as configured by WordPress.
68 *
69 * @return array The new tinyMCE config with our added custom elements.
70 */
71 public function add_custom_element( $tinymce_config ) {
72 if ( ! empty( $tinymce_config['custom_elements'] ) ) {
73 $custom_elements = $tinymce_config['custom_elements'];
74
75 $custom_elements .= ',~yoastmark';
76 }
77 else {
78 $custom_elements = '~yoastmark';
79 }
80
81 $tinymce_config['custom_elements'] = $custom_elements;
82
83 return $tinymce_config;
84 }
85 }
86