是的,您可以检索保存的元值并将其作为参数传递给短代码。
第一个选项是将保存的值获取到变量,对其进行验证,然后将其连接到传递给的短码字符串do_shortcode()
.
// get saved meta value
$form_id = get_field(\'your_key_for_form_id_here\');
// make sure we have an ID and it is a number, string or int
if ( $form_id && is_numeric( $form_id ) ) {
// do_shortcode returns the shortcode html, so you need to echo it yourself
echo do_shortcode(\'[gravitywp_count formid=\' . $form_id . \']\');
}
另一种选择是直接将元连接到短码字符串,如果您相信保存的元值将始终采用正确的格式。
echo do_shortcode(\'[gravitywp_count formid=\' . get_field(\'your_key_for_form_id_here\') . \']\');
您也可以跳过短代码部分,直接在模板文件中调用回调函数。
// modify your callback to take form id directly as a parameter
function your_entries_counting_function( int $form_id ) {
// your code to get the entries count
}
// get meta data
$form_id = get_field(\'your_key_for_form_id_here\');
// make sure it is what you\'re expecting
if ( $form_id && is_numeric( $form_id ) ) {
// pass the ID to your function
echo your_entries_counting_function( intval( $form_id ) );
}
如果您只使用ACF添加表单ID元字段,您可以通过自己向注册元盒来简化设置
add_meta_box()
将ACF完全排除在外。在这种情况下,您将使用
get_post_meta()
要检索保存的表单id元值,
$form_id = get_post_meta( get_the_id(), \'your_key_for_form_id_here\', true );