Câu trả lời:
Bạn có thể làm điều đó theo nhiều cách. Sau đây là hai cách tốt nhất.
$post_id = 5// example post id
$post_content = get_post($post_id);
$content = $post_content->post_content;
echo do_shortcode( $content );//executing shortcodes
Một phương pháp khác
$content = get_post_field('post_content', $post_id);
echo do_shortcode( $content );//executing shortcodes
Sau khi đề nghị của Pieter Goosen apply_filters
.
Bạn có thể sử dụng apply_filters
nếu bạn muốn nội dung được lọc bởi các plugin khác. Vì vậy, điều này loại bỏ nhu cầu sử dụngdo_shortcode
Thí dụ
$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.
Nếu bạn không muốn cho phép các plugin khác lọc nội dung này và cần chức năng shortcode thì hãy đi cùng do_shortcode
.
Nếu bạn không muốn shortcode quá thì chỉ cần chơi với post_content
.
do_shortcode
raw content
bài. Bất kỳ mã ngắn nào được nhúng trong bài sẽ không được xử lý. vì vậy chúng tôi đang tự mình làm điều đó vớido_shortcode
apply_filters( 'the_content', $content );
, theo cách này, tất cả các bộ lọc được áp dụng cho the_content()
thích wpautop
và trình xử lý shortcode, được áp dụng cho $content
. ;-). Lưu ý số nhiềufilters
apply_filters
thay vì do_shortcode
có ý nghĩa. Nhưng sử dụng apply_filter
hoàn toàn dựa trên quyết định môi trường của họ. Hãy để tôi cập nhật câu trả lời của tôi quá. Cảm ơn bạn rất nhiều vì sự quan tâm của bạn đối với cộng đồng @PieterGoosen
Tôi sẽ chỉ để lại ở đây một cách xấu xí khác mà đôi khi bạn có thể thấy hữu ích. Tất nhiên các phương thức sử dụng lệnh gọi API luôn được ưu tiên (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
)
);
$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);
Bằng cách sử dụng get_page('ID')
.
$page_id = 123; //Page ID
$page_data = get_page($page_id);
$title = $page_data->post_title;
$content = $page_data->post_content;
get_page()
bị mất giá
get_page()
. Nó đã bị phản đối từ rất lâu rồi. Ngoài ra, có một lượng tài nguyên không giới hạn trên trang web liên quan đến vấn đề này, thậm chí google có hàng tấn thông tin về vấn đề này