Отримуйте вміст публікації за ідентифікатором


10

Як я можу отримати вміст публікації за ідентифікатором пошти? Я намагався get_page('ID');показати вміст, але це не працює.


1
Як і ви навіть не намагалися читати документи get_page(). Це було знято з давніх часів. Також на сайті є необмежена кількість ресурсів щодо цієї проблеми, навіть у Google є багато інформації про це
Пітер Гусен

Відповіді:


17

Зробити це можна кількома способами. Наступні найкращі два способи.

$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo do_shortcode( $content );//executing shortcodes

Інший метод

$content = get_post_field('post_content', $post_id);
echo do_shortcode( $content );//executing shortcodes

Після пропозиції Пітера Гусена о apply_filters.

Ви можете використовувати, apply_filtersякщо хочете, щоб вміст було відфільтровано іншими плагінами. Тож це виключає необхідність використанняdo_shortcode

Приклад

$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo apply_filters('the_content',$content);
 //no need to use do_shortcode, but content might be filtered by other plugins.

Якщо ви не хочете дозволити іншим плагінам фільтрувати цей вміст і вам потрібна функція короткого коду, тоді перейдіть за допомогою do_shortcode.

Якщо ви також не хочете короткого коду, тоді просто пограйте з post_content.


Тільки дивуйтеся, чому ви використовуєтеdo_shortcode
Пітер Гусен

Привіт, дякую за запитання. @PieterGoosen Як тільки ми отримуємо raw contentпосаду. Будь-який короткий код, вбудований у допис, не оброблятиметься. тому ми робимо це do_shortcode
самостійно

2
Кращим способом було б використовувати apply_filters( 'the_content', $content );, таким чином, всі фільтри, які застосовуються до the_content()подібного, wpautopта до обробника коротких кодів $content. ;-). Зверніть увагу на множинуfilters
Пітер Гусен

1
Так, використання apply_filtersзамість do_shortcodeсенсу. Але використання apply_filterсуто базується на їх екологічному рішенні. Дозвольте також оновити свою відповідь. Дякую вам за турботу про спільноту @PieterGoosen
WPTC-Troop

0

Я просто залишу тут ще один гакітний некрасивий спосіб, який вам часом може бути корисним. Звичайно, завжди переважні методи, що використовують дзвінки API (get_post (), get_the_content (), ...).

global $wpdb;
$post_id = 123; // fill in your desired post ID
$post_content_raw = $wpdb->get_var(
    $wpdb->prepare(
        "select post_content from $wpdb->posts where ID = %d",
        $post_id
    )
);

0
$id = 23; // add the ID of the page where the zero is
$p = get_page($id);
$t = $p->post_title;
echo '<h3>'.apply_filters('post_title', $t).'</h3>'; // the title is here wrapped with h3
echo apply_filters('the_content', $p->post_content);

1
Будь ласка , змініть свій відповідь , і додати пояснення: чому це може вирішити цю проблему?
фуксія

-1

За допомогою get_page('ID').

$page_id = 123;  //Page ID
$page_data = get_page($page_id); 
$title = $page_data->post_title; 
$content = $page_data->post_content;

1
Захищені, як ви насправді навіть не намагалися прочитати документацію. get_page()знецінено
Пітер Гусен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.