首先,我建议不要使用extract()
. 这使得很难准确地说出可用变量是什么以及它们是如何设置的,这是这里混乱的一部分。相反,只需使用$atts
直接地执行此操作时,可以在$atts
如下数组:
$id = $atts[\'id\'];
使用
shortcode_atts()
确保接受的属性具有默认值,以便在用户未设置
id
在短代码上。
当您使用该方法时,您的短代码如下所示:
<?php
function post_function( $atts ) {
// Set defaults for attributes.
$atts = shortcode_atts( array(
\'id\' => 21504,
), $atts );
// Get the ID attribute.
$post_id = $atts[\'id\'];
// Get post by ID.
$post = get_post( $post_id );
// Check there is a post with that ID. If so, return the content, with filters applied.
if ( $post ) {
$content = $post->post_content;
return apply_filters( \'the_content\', $content );
}
}
add_shortcode( \'post\', \'post_function\' );