Как отобразить содержимое для данного идентификатора страницы без оболочки?
Как отобразить содержимое для данного идентификатора страницы без оболочки <p></p>
?
В настоящее время я использую следующий метод:
<?php
$id=21;
$post = get_page($id);
$content = apply_filters('the_content', $post->post_content);
echo $content;
?>
Напримерpage ID = 21
имеет следующее содержимое: Some content
Что такое эхо wordpress <p>Some content</p>
Любое предложение очень ценится.
2 answers
Вы можете добавить это в свой functions.php файл, например,
remove_filter ('the_content', 'wpautop');
, который во всех случаях удалит форматирование абзаца из тега шаблона the_content
.
Если у вас возникнет необходимость в этом в будущем, вы можете написать;
<?php wpautop(the_content());?
> в вашем шаблоне, чтобы добавить форматирование без необходимости добавлять фильтр обратно.
Использование echo get_the_content();
также обойдет фильтр WordPress wpautop
.
Вот небольшая функция, которую я написал для вас, которую вы можете использовать в своем шаблоне файлы (вставьте фрагмент в functions.php и смотрите инструкции по использованию ниже).
function custom_content($args = '', $allow = ''){
if ($args == 'alltags') {
$type = the_content();
} elseif ($args == 'notags') {
$type = strip_tags(wpautop(get_the_content()), $allow);
} else {
$type = get_the_content();
}
echo $type;
}
Использование:
<?php custom_content();?> // no <p> tags, but <a>, <strong>, etc are preserved.
<?php custom_content('notags');?> // strips all tags from content
<?php custom_content('notags', '<a>');?> // strips all tags except <a>
<?php custom_content('notags', '<a><p><etc..>');?> // strips all tags except <a> & <p>
<?php custom_content('alltags');?> // all tags uses the_content();
Теперь кое-что из этого может быть излишним, но это иллюстрирует, как вы можете создать многофункциональную функцию для использования в ваших шаблонах, которая может предоставить вам некоторое, полное или полное форматирование в зависимости от вашей ситуации.
Примечание: На случай, если кому-то интересно, почему wpautop
обернуто вокруг get_the_content
выше, это связано с тем, что get_the_content
не проходит через фильтр wpautop
, поэтому, если вы хотите чтобы использовать теги <p>
в указанном списке разрешенных тегов при использовании пользовательского аргумента notags
, вам необходимо добавить форматирование <p>
обратно с wpautop
.
Альтернатива для получения содержимого страницы на основе идентификатора и без тегов <p>
;
function get_content($id) {
$post = get_page($id);
$content = apply_filters('get_the_content', $post->post_content);
echo $content;
}
Использование:
<?php get_content(21); ?>
Вам необходимо удалить фильтр wpautop
, например:
<?php
$id=21;
$post = get_page($id);
//remove auto p filter
remove_filter ('the_content','wpautop');
$content = apply_filters('the_content', $post->post_content);
//return the filter for other posts/pages down the road
add_filter ('the_content','wpautop');
echo $content;
?>