一切正常,它使用下面的代码显示当前页面的注释,并使用此短代码[wpdiscuz\\u comments]。
function my_wpdiscuz_shortcode() {
$html = "";
if (file_exists(ABSPATH . "wp-content/plugins/wpdiscuz/themes/default/comment-form.php")) {
ob_start();
include_once ABSPATH . "wp-content/plugins/wpdiscuz/themes/default/comment-form.php";
$html = ob_get_clean();
}
return $html;
}
add_shortcode("wpdiscuz_comments", "my_wpdiscuz_shortcode");
我试图使用下面的短代码传递id参数。但它不起作用。
[wpdiscuz_comments post_id="22"]
其中;post\\U id“;参数仅获取post id 22的注释。这样我就可以获取特定帖子的评论。
谁能帮我一下,或者让我知道如何使用上面的代码通过shortcode传递参数?谢谢
SO网友:Pat J
作为的文档add_shortcode() 状态
默认情况下,每个短代码回调传递三个参数,包括属性数组($atts)、未设置的短代码内容或null($content),最后是短代码标记本身($shortcode\\u标记),按此顺序传递。
使用shortcode_atts()
定义允许哪些属性并为这些属性设置默认值。
function my_wpdiscuz_shortcode( $_atts ) {
$defaults = array(
\'post_id\' => \'\',
);
$atts = shortcode_atts( $defaults, $_atts );
// Confirm that $post_id is an integer.
$atts[\'post_id\'] = absint( $atts[\'post_id\'] );
// ----
// Now you can use $atts[\'post_id\'] - it will contain
// the integer value of the post_id set in the shortcode, or
// 0 if nothing is set in the shortcode.
// ----
$html = "";
if (file_exists(ABSPATH . "wp-content/plugins/wpdiscuz/themes/default/comment-form.php")) {
ob_start();
include_once ABSPATH . "wp-content/plugins/wpdiscuz/themes/default/comment-form.php";
$html = ob_get_clean();
}
return $html;
}
add_shortcode("wpdiscuz_comments", "my_wpdiscuz_shortcode");
注意,如果
post_id
未在快捷码调用中设置,它将默认为
0
.