调用短代码时,我正在设置一个Wordpress操作。然后,该动作在我的模板文件中完成。这允许用户使用简码将简单的简码添加到“边栏”或“内容后”部分中。
function add_sidebar_form($atts){
$order = isset($atts['order']) ? $atts['order'] : 99;
add_action( 'fc_content_sidebar', 'fc_user_form', $order);
}
function fc_user_form(){
echo "<div>This shows up in the sidebar</div>";
}
add_shortcode( 'add_user_form', 'add_sidebar_form' );
这一切都很好,除非我有一个可以使用变量的内容。我可以为简码设置它,这很有意义。但是我还不是最傻的如何把它付诸行动。文档仅显示在do_action
函数中传递的参数,因此也许这本质上不是该操作。社区可能对add_action
和do_action
函数之间的相互作用有更好的了解。
function add_sidebar_product($atts){
$order = isset($atts['order']) ? $atts['order'] : 99;
//$atts contains an 'id' property that corresponds to a
//product that needs to be passed along to fc_sidebar_product
add_action( 'fc_content_sidebar', 'fc_sidebar_product', $order);
}
function fc_sidebar_product($id){
//get the product by $id
}
OP注意:我不需要需要知道如何在默认侧边栏空间中显示产品。这只是一个示例用例。我需要专门了解如何从CMS页面的短代码中获取参数,以获取在其他地方的模板中执行的函数。