WordPress 中基于 URL 重写的重定向页面模板

WordPress URL 重写是 WordPress 的一种常见做法,其中(要显示的)内容会发生更改。

让我解释。通常,当您键入 URL 时,服务器会转到该位置并提供在那里找到的任何文件。在 WordPress URL 重写的情况下,URL 保持不变,但服务器会转到重写的 URL 来查找内容。

本文将向您展示如何:

  • 在 WordPress 中为自定义帖子类型永久链接添加重写规则
  • 使用基于重写规则的页面模板

考虑以下新闻帖子类型。用于此类型的永久链接是 news/{news-event}。
现在我想向此 WordPRess URL 结构添加两个单独的端点、照片和视频。添加这些端点后,新的 URL 结构将是 news/{news-event}/photos 和 news/video。

自定义网址

123456功能 prefix_news_rewrite_rule ( ) {添加重写规则 '新闻/([^/]+)/照片' , 'index.php?news=$matches[1]&photos=yes' , '顶部' 添加重写规则 '电影/([^/]+)/视频' , 'index.php?news=$matches[1]&videos=yes' , '顶部' }添加动作 '在里面' 'prefix_news_rewrite_rule'

通过使用add_rewrite_rule函数,我向基本 URL 添加了两个自定义重写规则。同时,我有
将两个查询变量设置为 WordPress URL。请注意,我已经避免使用add_rewrite_endpoint函数,因为我不想将端点添加到网站上的每个永久链接。

注册查询变量

1234567功能 prefix_register_query_var ( $变量 { $变量[ ] = '相片' ; $变量[ ] = “视频” 返回 $变量 }添加过滤器 'query_vars' , 'prefix_register_query_var'

我已将这些查询变量添加到 WordPress 中。我现在可以轻松地在自定义代码中使用它们。现在请注意,如果我转到 URL news/{news-event}/photos ,浏览器的地址栏仍将显示single-news.phpsingle.php

设置模板

12345678910111213功能 prefix_url_rewrite_templates ( ) {如果 获取查询变量 '相片' && is_singular( 'news' ) ) { add_filter( 'template_include', function() { return get_template_directory() . '/single-news-image.php'; } ) ; }如果 获取查询变量 “视频” && is_singular( 'news' ) ) { add_filter( 'template_include', function() { return get_template_directory() . '/single-news-video.php'; } ) ; } }添加动作 '模板重定向' , 'prefix_url_rewrite_templates'

现在在这个片段中,我设置了条件,如果有查询变量,照片视频,并且它是单个新闻页面,则将模板设置为single-news-image.phpsingle-news-event.php (取决于根据查询变量)

结论

在本教程中,我讨论了 WordPress 中基于 URL 重写的自定义页面模板。如果您在理解这个想法时需要任何帮助,或者想为问题提供替代解决方案,请在下面发表评论。

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2023 Tadke.com. 琼ICP备20000547号