wordpress - 单击按钮后加载 wordpress 模板部分
问题描述
当用户单击按钮时,这里有什么方法可以调用 wordpress 模板部分吗?
实际上,我想在 wordpress 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 而不是您的默认页面模板。
推荐阅读
- c++11 - 获取 rtpL16 数据到本地文件 | 如何检查文件是否符合预期?
- dart - Angular Dart 给出错误:getter 'injector$Injector' 没有为类 'self' 定义
- amazon-web-services - 将 RDS 复制到新数据库的最快方法
- angular - 如何测试角度形式的第一个表单控制重点是使用茉莉花的页面加载
- java - 无法使用 Java 从 S3 下载文件
- java - @Test(expected = Exception.class) 或 Assertions.assertThrows(...) 或 assertThatThrownBy(..) 推荐哪一个?
- swift - 在主应用程序包和它包含的框架之间进行通信
- windows - GitHub 的凭据“卡在”我的另一个帐户上
- powershell - 将变量值推送到新的记事本窗口中(不保存文件)
- apache-nifi - 如何在 NiFi 中向管理员用户授予所有权限