PluginProbe
Polylang / 3.0.2
Polylang v3.0.2
3.8.9 3.8.8 3.8.7 3.8.6 3.8.5 3.8.4 3.8.3 2.7 2.7.0.1 2.7.1 2.7.2 2.7.3 2.7.4 2.8 2.8.1 2.8.2 2.8.3 2.8.4 2.9 2.9.1 2.9.2 3.0 3.0.1 3.0.2 3.0.3 All 233 releases
polylang / admin / admin-block-editor.php

admin-block-editor.php in Polylang 3.0.2, at admin/admin-block-editor.php

67 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package Polylang
4 */
5
6 /**
7 * Manages filters and actions related to the block editor
8 *
9 * @since 2.5
10 */
11 class PLL_Admin_Block_Editor {
12 /**
13 * @var PLL_Model
14 */
15 protected $model;
16
17 /**
18 * Preferred language to assign to a new post.
19 *
20 * @var PLL_Language
21 */
22 protected $pref_lang;
23
24 /**
25 * Constructor: setups filters and actions
26 *
27 * @since 2.5
28 *
29 * @param object $polylang
30 */
31 public function __construct( &$polylang ) {
32 $this->model = &$polylang->model;
33 $this->pref_lang = &$polylang->pref_lang;
34
35 add_filter( 'block_editor_preload_paths', array( $this, 'preload_paths' ), 10, 2 );
36 }
37
38 /**
39 * Filters the preload REST requests by the current language of the post.
40 * Necessary otherwise subsequent REST requests, all filtered by the language,
41 * would not hit the preloaded requests.
42 *
43 * @since 2.5
44 *
45 * @param (string|string[])[] $preload_paths Array of paths to preload.
46 * @param WP_Post $post The post resource data.
47 * @return (string|string[])[]
48 */
49 public function preload_paths( $preload_paths, $post ) {
50 if ( $this->model->is_translated_post_type( $post->post_type ) ) {
51 $lang = $this->model->post->get_language( $post->ID );
52
53 if ( ! $lang ) {
54 $lang = $this->pref_lang;
55 }
56
57 foreach ( $preload_paths as $k => $path ) {
58 if ( is_string( $path ) && '/' !== $path ) {
59 $preload_paths[ $k ] = $path . "&lang={$lang->slug}";
60 }
61 }
62 }
63
64 return $preload_paths;
65 }
66 }
67