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


141

Як я можу отримати вміст публікації WordPress за ідентифікатором пошти?

Відповіді:


177

Просто, як це стає

$my_postid = 12;//This is page id or post id
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;

85
Стенограма для конкретного поля:$content = get_post_field('post_content', $my_postid);
Рарст

4
@Bainternet Мені просто цікаво ... що це за частина $content = str_replace(']]>', ']]>', $content);? яка мета цього там?
Середній Joe

1
@AverageJoe його основний пошук і заміна. Під час використання the_content () вміст фільтрується. Оскільки у наведеному вище прикладі вміст було безпосередньо завантажено, автор використав пошук та заміну, щоб зробити його безпечним.
Harish Chouhan

2
можливо, вам також потрібен do_shortcode () на кшталт$content = do_shortcode(get_post_field('post_content', $my_postid));
cyptus

Чи все-таки є можливість зберегти "more_link"?
user2128576

126
echo get_post_field('post_content', $post_id);

61
краще робити так, як echo apply_filters('the_content', get_post_field('post_content', $post_id));. Наприклад, при використанні qTranslate вашого рішення буде недостатньо.
Карел Аттл

4
Це найкраща відповідь, якщо ціль полягає в тому, щоб отримати вміст публікації таким, який він є на сторінці редагування WordPress.
mcont

Без коду з @KarelAttl рядок переривається там, де його немає. З кодом apply_filters він прекрасно працював.
Олександр Таубенкорб

1
apply_filtersце хороший варіант, але не підходить для моєї нинішньої мети. Добре мати обидва варіанти.
KnightHawk

25

Ще один спосіб отримати вміст публікації WordPress за ідентифікатором пошти:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

Для завершення цієї відповіді я також додав до цієї відповіді метод 01 та метод 02.

Спосіб 01 (кредит надходить до bainternet ):

$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);

Спосіб 02 (кредит надходить до realmag777 ):

$content = get_post_field('post_content', $my_postid);

Спосіб 03:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));

Прочитайте, який найкращий / ефективний спосіб отримати вміст WordPress поштовим ідентифікатором і чому? питання, щоб отримати уявлення про те, яким саме ви повинні скористатись із зазначених вище трьох.


0

Якщо вам потрібно більше, ніж один пост, використовуйте get_posts(). Він залишає основний запит в спокої і повертає масив публікацій, за якими легко пройти цикл.

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