получает все block_templates на сайте, но мне нужны только те, которые загружены для текущей страницы.
Я пытаюсь проверить, есть ли короткий код внутри одного из шаблонов редактора сайта Gutenberg. Он не сохраняется в $post_content или $template.
Это позволяет проверить каждый из них
Но я хочу только проверить, что загружается на страницу.
Я видел, что плагин монитора запросов выводит шаблон основного блока в шаблонах вкладок > шаблон блокаЭто код монитора запросов, который выводит правильный шаблон и, похоже, получает его идентификатор:
$post_content легко выводит все. Как я могу получить содержимое страницы, созданной сайтом Гутенберга, таким простым способом вместо того решения, которое у меня есть?
[code]get_block_templates()[/code] получает все block_templates на сайте, но мне нужны только те, которые загружены для текущей страницы. Я пытаюсь проверить, есть ли короткий код внутри одного из шаблонов редактора сайта Gutenberg. Он не сохраняется в $post_content или $template. Это позволяет проверить каждый из них [code] $templates = get_posts(array( 'post_type' => array('wp_template'), 'numberposts' => -1, 'fields' => 'ids' ));
foreach ($templates as $template_id) { $template_content = get_post_field('post_content', $template_id); if (has_shortcode($template_content, 'xxxx')) { styles_and_scripts(); return; } } [/code] Но я хочу только проверить, что загружается на страницу. Я видел, что плагин монитора запросов выводит шаблон основного блока в шаблонах вкладок > шаблон блокаЭто код монитора запросов, который выводит правильный шаблон и, похоже, получает его идентификатор: [code] echo ' '; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped echo self::build_link( QM_Util::get_site_editor_url( $data->block_template->id, 'wp_template' ), esc_html( $data->block_template->id ) ); echo ' '; } [/code] Мне удалось отменить решение контроля качества для вывода содержимого шаблона, но это не идеально: [code]class Template_Debugger { protected $template_path = ''; protected $block_template = null;
public function __construct() { add_action('template_redirect', [$this, 'action_template_redirect']); add_action('wp_footer', [$this, 'output_template_data']); }
public function action_template_redirect() { add_filter('template_include', [$this, 'filter_template_include'], PHP_INT_MAX); $this->detect_block_template(); }
public function filter_template_include($template_path) { $this->template_path = $template_path;
[/code] $post_content легко выводит все. Как я могу получить содержимое страницы, созданной сайтом Гутенберга, таким простым способом вместо того решения, которое у меня есть? [code]get_block_template()[/code] подойдет отлично, но мне нужен простой способ получить идентификатор шаблона за пределами моего чудовищного решения.