Как отобразить содержимое для данного идентификатора страницы без оболочки?


Как отобразить содержимое для данного идентификатора страницы без оболочки <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>

Любое предложение очень ценится.

Author: Adam, 2012-06-27

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); ?>
 2
Author: Adam, 2012-06-27 19:20:22

Вам необходимо удалить фильтр 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;  
?>
 4
Author: Bainternet, 2012-06-27 16:43:19