Как использовать необработанные данные из get_the_content () в качестве переменной - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь использовать содержимое, чтобы указать, какой код template_part загружать на мою страницу. Например, если content == "volume" я хочу загрузить get_template_part('lib/volume');

<?php
    $content = get_the_content();       
    $content = strip_tags($content);
    $content = html_entity_decode($content);
    $content = filter_var($content, FILTER_SANITIZE_STRING);
    get_template_part('lib/'.$content); 
?>

Это код в моем шаблоне, однако он не загружает нужную часть шаблона.

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете удалить все теги html с помощью wp_strip_all_tags(), чтобы получить только содержимое. strip_tags() не поможет вам избавиться от комментариев, а wordpress дает нам отличную функцию для удаления скрипта и стиля.

https://developer.wordpress.org/reference/functions/wp_strip_all_tags/

Итак, вы можно использовать одну строку кода, чтобы получить чистый контент:

$content = wp_strip_all_tags( get_the_content() );

Возможно, это причина. Вы пробовали отображать значение $content, чтобы убедиться, что у вас есть нужная строка? Если он выводит строку правильно, может быть проблема с функцией get_template_part().

https://developer.wordpress.org/reference/functions/get_template_part/

Вы можете попробовать сложить строку вместе, перед использованием в функции:

$content = wp_strip_all_tags( get_the_content() );
$content = "lib/".$content;
get_template_part( $content );

Если это не работает, проверьте имя папки lib (должно быть подпапкой в ​​root папки вашей темы) и имя вашей php файлов. Также возможно, что что-то не так с файлом части шаблона, и по этой причине он не загружен. Затем проверьте шаблон страницы, внутри которого вы пытаетесь получить часть шаблона.

Если вам ничего не помогает, в качестве альтернативы можно использовать include() вместо get_template_part().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...