首页 > 解决方案 > 单击按钮后加载 wordpress 模板部分

问题描述

当用户单击按钮时,这里有什么方法可以调用 wordpress 模板部分吗?

实际上,我想在 wordpress woocommerce 产品页面中放置一个名为“详细信息”的按钮。当用户单击它时,他们将重定向到自定义模板部分。

标签: wordpresstemplateswoocommercehook-woocommerce

解决方案


您可以通过重写端点处理单独的页面加载。这将为每个按钮单击向服务器发送一个请求,您必须自己格式化链接以将端点附加到永久链接,不确定这是否符合您的要求。

首先为页面帖子类型注册端点:

function wpa_view_endpoint() {
    add_rewrite_endpoint( 'view', EP_PAGES );
}

add_action( 'init', 'wpa_view_endpoint' );

现在对于每个页面,例如:

http://example.com/some-page/ 您还可以使用以下 URL:

http://example.com/some-page/view/list/ view 的值将通过以下方式在您的模板中提供get_query_var

$view = get_query_var( 'view' ); 然后您可以显示基于该值的任何标记。

您还可以过滤页面模板的加载并以这种方式为每个视图加载单独的模板:

function wpa_view_template( $template = '' ){
    global $wp_query;
    if( isset( $wp_query->query_vars['view'] ) ) {
        $template = locate_template( $wp_query->query_vars['view'] . '.php', false );
    }
    return $template;
}

add_filter( 'page_template', 'wpa_view_template' );

所以对于这个例子:

http://example.com/some-page/view/list/

此过滤器将加载模板 list.php 而不是您的默认页面模板。


推荐阅读