Downvotes, как вы даже не пытались читать документы на 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
Вы можете использовать, 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
WPTC-Troop
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
));
$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);
get_page()
. Это устарело очень давно. Кроме того, на сайте есть неограниченное количество ресурсов по этой проблеме, даже у Google есть тонны информации по этому вопросуОтветы:
Вы можете сделать это несколькими способами. Ниже приведены лучшие два способа.
Другой метод
После предложения Питера Гусена о
apply_filters
.Вы можете использовать,
apply_filters
если вы хотите, чтобы контент был отфильтрован другими плагинами. Таким образом, это устраняет необходимость использованияdo_shortcode
пример
Если вы не хотите, чтобы другие плагины фильтровали этот контент и нуждались в функции шорткода, тогда переходите к
do_shortcode
.Если вы тоже не хотите шорткод, просто играйте с
post_content
.источник
do_shortcode
raw content
сообщение. Любой шорткод, встроенный в пост, не будет обработан. так что мы делаем это сами сdo_shortcode
apply_filters( 'the_content', $content );
, таким образом, все фильтры, которые применяются кthe_content()
любятwpautop
и обработчик шорткод, применяются к$content
. ;-). Обратите внимание на множественное числоfilters
apply_filters
вместоdo_shortcode
смысла. Но использованиеapply_filter
исключительно на основе их решения окружающей среды. Позвольте мне обновить мой ответ тоже. Большое спасибо за вашу заботу о сообществе @PieterGoosenЯ просто оставлю здесь еще один хакерский уродливый способ, который иногда может оказаться полезным. Конечно, методы, которые используют вызовы API, всегда предпочтительны (get_post (), get_the_content (), ...).
источник
источник
С помощью
get_page('ID')
.источник
get_page()
обесценивается