В вашей функции шорткода есть несколько ошибок, но основные моменты:
- Вы используете
extract
, но не используете ничего из extract
$atts
- это массив, а не только id
. - Вы используете
apply_filters('the_content')
. Это по существу перезаписывает WP, встроенные в apply_filter. Вы хотите использовать add_filter
, но, как видите, в этом нет необходимости.
Вот шорткод, урезанный тем, что вы пытаетесь сделать:
function shtcode_Func( $atts ) {
// set up default parameters. No need to use extract here.
$a = shortcode_atts(array(
'id' => ''
), $atts);
// Use get_the_content, and pass the actual ID
$content = get_the_content('','', $a['id'] );
// This is the same
$content = str_replace(']]>', ']]>', $content);
// Return the content.
return $content;
}
add_shortcode('shortcodePage', 'shtcode_Func');