<p> 태그를 제거하지 않고 'post_content'를 얻는 방법은 무엇입니까?


20

특정 게시물의 게시물 내용을 검색하려고합니다.

$post = get_post(/* id */);
$content = $post->post_content;

그러나 이것은 줄 바꿈없이 컨텐츠를 검색하고 모든 <p>태그를 생략 합니다.

<p>게시물 페이지 또는 게시물 편집기의 " 텍스트 "탭에 표시된대로 태그 를 제거하지 않고 게시물 내용을 검색하는 올바른 방법은 무엇입니까 ?

답변:


30

지금까지 두 답변은 모두 정확하지만 더 철저한 답변이 필요합니다.

이것을 사용하는 경우 :

$content = wpautop( $post->post_content );

콘텐츠를 게시하기 위해 단락 태그를 추가하는 하나의 기능을 적용하고 있습니다. wpautop()에 연결되는 많은 함수 (때때로 플러그인 함수 포함) 중 하나입니다 the_content.

$content = apply_filters('the_content', $post->post_content);

기본적으로 the_content포함 wpautop()되는 모든 필터를 통해 게시물 컨텐츠가 실행됩니다 .

마지막으로 루프에 있다면 다음과 같이하면됩니다.

$content = apply_filters( 'the_content', get_the_content() );

본질적으로 두 번째 코드 스 니펫의 래퍼이지만 물론 조금 더 멋지게 보입니다. 2018 년 9 월 1 일 업데이트 : 주석을 기반으로 수정되었습니다 . 소품 @timmb.

일반적으로 코어 WP 함수를 사용하면 더 이상 이전 버전과의 호환성 (이론적으로는 이상)을 가능하게하기 때문에이 작업을 수행하기 위해 선호하는 "올바른 방법"이 마지막부터 첫 번째 방법이라고합니다. 다른 결정은 WordPress 및 플러그인에서 게시물 컨텐츠를 수정하도록 허용할지 여부입니다. 이 경우 반드시 두 번째 또는 세 번째 옵션을 사용하십시오.


1
이 최종 솔루션이 잘못되었다고 생각합니다. 에서 codex.wordpress.org/Function_Reference/get_the_content : "the_content ()에서 중요한 차이점은 get_the_content ()가 'the_content'필터를 통해 컨텐츠를 통과하지 못할 것입니다." 이것이 올바른 접근 방식을 제안하지 $content = apply_filters('the_content', get_the_content);않습니까?
Tim MB


4

p 태그로 게시물 내용을 얻는 두 번째 방법은

echo wpautop( $post->post_content );
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.