通常的方法是使用do_shortcode()
. 但这并不是一种有效的方法,因为它必须运行一个非常广泛的regex(正则表达式)来解析WP安装中的每一个短代码,才能得到您想要的代码。See this post for a more thorough explanation.
更好的方法是直接运行所需的回调函数。但这有时可能是一个挑战——要么你必须挖掘大量的代码才能找到它,要么它可能在对象类中,你怎么称呼它?
J.D. Grimes has provided a good utility function 用于以这种方式调用短代码,以便无需使用do\\u shortcode()即可访问直接回调函数。添加以下函数,可用于任何短代码实例:
/**
* Call a shortcode function by tag name.
*
* @author J.D. Grimes
* @link https://codesymphony.co/dont-do_shortcode/
*
* @param string $tag The shortcode whose function to call.
* @param array $atts The attributes to pass to the shortcode function. Optional.
* @param array $content The shortcode\'s content. Default is null (none).
*
* @return string|bool False on failure, the result of the shortcode on success.
*/
function do_shortcode_func( $tag, array $atts = array(), $content = null ) {
global $shortcode_tags;
if ( ! isset( $shortcode_tags[ $tag ] ) )
return false;
return call_user_func( $shortcode_tags[ $tag ], $atts, $content, $tag );
}
然后,您可以这样调用您的快捷码:
echo do_shortcode_func( \'mc4wp_form\', array( \'id\' => \'id\' ) );