Получение содержимого сообщения WordPress по идентификатору сообщения
4 ответ
- голосов
-
- 2011-02-17
Все просто
$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;
Simple as it gets
$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;
-
Сокращение для конкретного поля: `$ content=get_post_field ('post_content',$my_postid);`Shorthand for specific field: `$content = get_post_field('post_content', $my_postid);`
- 89
- 2011-02-17
- Rarst
-
@Bainternet Мне просто любопытно ... что это за часть `$ content=str_replace (']]>',']] >',$ content);` do?какая там цель?@Bainternet I'm just curious here... what is the part `$content = str_replace(']]>', ']]>', $content);` do? what's the purpose of it there?
- 5
- 2013-11-04
- Average Joe
-
@AverageJoe его основной поиск и замена.При использованииthe_content () контент фильтруется.Поскольку в приведенном выше примере содержимое было получено напрямую,автор использовал поиск и замену,чтобы сделать его безопасным.@AverageJoe its basic search and replace. When using the_content() the content is filtered. Since in the above example the content was directly retrieved, the author has used the search and replace to make it safe.
- 2
- 2014-03-18
- Harish Chouhan
-
возможно,вам также понадобится do_shortcode (),например `$ content=do_shortcode (get_post_field ('post_content',$my_postid));`maybe you also need do_shortcode() like `$content = do_shortcode(get_post_field('post_content', $my_postid));`
- 3
- 2018-03-09
- cyptus
-
Есть ли способ сохранить "more_link"?Is there anyway to preserve the "more_link"?
- 0
- 2018-07-05
- user2128576
-
- 2012-10-05
echo get_post_field('post_content', $post_id);
echo get_post_field('post_content', $post_id);
-
лучше делать это как `echo apply_filters ('the_content',get_post_field ('post_content',$post_id));`.Например,при использовании qTranslate вашего решения будет недостаточно.better to do it like `echo apply_filters('the_content', get_post_field('post_content', $post_id));`. For example when using qTranslate, your solution would not be enough.
- 64
- 2013-01-17
- Karel Attl
-
Это лучший ответ,если целью является получение содержимого сообщения,как оно есть на странице редактирования WordPress.This is the best answer if the scope is to get the post content as it is in the WordPress edit page.
- 5
- 2014-08-08
- mcont
-
Без кода из @KarelAttl разрыв строки там,где он отсутствует.С кодом apply_filters он работал отлично.Without the code from @KarelAttl line breaks where missing. With the apply_filters code it worked perfectly.
- 1
- 2015-09-23
- Alexander Taubenkorb
-
apply_filters - хороший вариант,но не подходит для моих текущих целей.Хорошо иметь оба варианта.`apply_filters` is a good option, but wasn't right for my current purpose. It's good to have both options.
- 2
- 2015-11-05
- KnightHawk
-
- 2016-12-02
Другой способ получить контент сообщения 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 по идентификатору публикации и почему? вопрос,чтобы понять,какой из трех вышеупомянутых вам следует использовать.
Another way to get a WordPress post content by post id is:
$content = apply_filters('the_content', get_post_field('post_content', $my_postid));
To complete this answer I have also added method 01 and method 02 to this answer.
Method 01 (credit goes to bainternet):
$content_post = get_post($my_postid); $content = $content_post->post_content; $content = apply_filters('the_content', $content); $content = str_replace(']]>', ']]>', $content);
Method 02 (credit goes to realmag777):
$content = get_post_field('post_content', $my_postid);
Method 03:
$content = apply_filters('the_content', get_post_field('post_content', $my_postid));
Read the What is the best / efficient way to get WordPress content by post id and why? question to get an idea about which one you should use from the above three.
-
- 2015-11-20
Если вам нужно более одного сообщения,используйте
get_posts()
а>.Он оставляет основной запрос в покое и возвращает массив сообщений,который легко перебрать.If you need more than one post, use
get_posts()
. It leaves the main query alone and returns an array of posts that's easy to loop over.
Как я могу получить контент сообщения WordPress по идентификатору сообщения?