这听起来可能有点困惑,但我会尽力解释。我制作了一个获取帖子内容的短代码(当给定id时),它如下所示:
$post_id = $id;
$queried_post = get_post($post_id);
$postcontent = $queried_post->post_content;
$title = $queried_post->post_title;
然后,我有另一个变量,它将一些东西放在一起并返回:
$finaloutput = $title . $postcontent;
我想做的是能够使用
$postcontent
, 因此,当获取一篇文章时,将显示该文章中的任何短代码。我试过跑步
do_shortcode
在
$postcontent
变量,但它导致页面根本无法加载。
有什么想法吗?
最合适的回答,由SO网友:birgire 整理而成
你可以试试这个:
add_shortcode( \'content\',\'content_callback\' );
function content_callback( $atts, $content = NULL ){
$atts = shortcode_atts(array(
\'pid\' => \'\',
), $atts);
if( ! is_int( 1 * $atts[\'pid\'] ) )
return "<!-- Shortcode Error: pid must be an integer -->";
if( absint( $atts[\'pid\'] ) === get_the_ID() )
return "<!-- Shortcode Error: pid can\'t be the current id -->";
$queried_post = get_post( absint( $atts[\'pid\'] ) );
if( ! is_object( $queried_post ) )
return "<!-- Shortcode Error: Post not found! -->";
$postcontent = do_shortcode( $queried_post->post_content );
$title = $queried_post->post_title;
$finaloutput = $title . $postcontent;
return $finaloutput;
}
此处使用的快捷码如下所示:
[content pid="2069"]
在哪里
pid
是一些帖子ID。