Questions tagged «permalinks»

指向项目的永久链接(博客文章,附件等)。默认结构是“?p = 123”,但是WordPress可以处理“漂亮的永久链接”,并将内部将其重写为以前的版本。如果您对特殊的重写结构有疑问,则应使用[url-rewriting]标记。

1
存档页面和单个帖子的自定义重写规则
我正在用几种自定义帖子类型构建一个Wordpress网站。每个职位类型都是不同的杂志。我也有杂志年份和期刊的自定义元字段。 我想拥有网址(使用archive.php): http://my_site/magazine/name/ http://my_site/magazine_name/year/ http://my_site/magazine_name/year/issue/ 我是通过代码实现的: function magazine_rewrite_tag() { add_rewrite_tag('%issue_year%', '([0-9]{4})'); add_rewrite_tag('%issue%', '([0-9])'); } add_action('init', 'magazine_rewrite_tag', 10, 0); 和: function magazine_rewrite_rules() { add_rewrite_rule('^([a-z]+)/([0-9]{4})/([0-9])?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]&issue=$matches[3]', 'top'); add_rewrite_rule('^([a-z]+)/([0-9]{4})?', 'index.php?post_type=$matches[1]&issue_year=$matches[2]', 'top'); } add_action('init', 'magazine_rewrite_rules'); 当然,我在archive.php中也有一个自定义查询。而且效果很好。 但是现在,我的单篇文章网址不起作用。默认情况下,它是: http://my_site/magazine/post-title 但它显示了杂志中的所有文章,例如url(并且使用了archive.php模板): http://my_site/magazine/ 如何为单个自定义帖子添加正确的重写规则?我可能想以这种格式为单个帖子(仅针对选定的自定义帖子类型)提供网址: http://my_site/magazine/year/issue/post-title

2
在帖子的永久链接中使用类别库
目标 我想将我的永久链接格式如下: 用于帖子:somePrefix /%category%/%postname% 对于类别:somePrefix /%category% 凡somePrefix是在两种情况下是相同的。 我知道这没有太大的好处-对我来说,这似乎是“干净的” :)。如果要手动编辑URL,它会派上用场。 我尝试过的 没有类别库 一种方法是将帖子的永久链接定义为/%category%/%postname%/,并使用插件摆脱类别库。不幸的是,那些插件似乎有缺陷,不鼓励使用(例如,Yoast SEO插件)。 同一类别库 我想没问题,让我们这样使用永久链接中的类别库:category_base /%category%/%postname%。这将产生: 对于帖子:example.org/category_base/%category%/%postname% 用于类别:example.org/category_base/%category% 这适用于类别,但现在链接到帖子会产生404。 怎么办? 那么有没有办法做到这一点?设置,插件或什至一点点入侵WordPress以正确处理由Same Category Base创建的链接?

2
将域映射到永久链接(非多站点)
我正在尝试在独立的WP安装(不是多站点)上执行此操作。我想要实现的是: 用户保存domain.com在usermeta上。(完成) 用户创建一个新的CPT,例如company。默认情况下可通过访问(默认为original.com/company/example-company完成) 我需要用户创建的所有帖子也可以通过设置domain.com/company/example-companyusermeta时才可用domain。 我知道DNS和域应该指向当前的WP安装(无关),但不确定如何将域映射到永久链接。 算法应该是这样的 检查是否显示companyCPT单页。 检查作者是否设置了域。 如果domain设置,则修改永久链接。

3
如何在永久链接中使用add_query_arg获取漂亮的URL
通过add_query_arg()它可以很好地向URL添加其他参数,并且轻松创建重写规则。到目前为止,一切都很好。但是问题是由wordpress完成的URL替换。 当我有一个网址时,例如: www.mysite.com/?page_id=1&myvar=test 并使用激活的永久链接将此URL键入浏览器的地址栏中。该链接将变为: www.example.com/pagename/?myvar=test 但是:我想得到的是: www.example.com/pagename/test 最后,我想使用如下代码: <a href="<?php add_query_arg( 'myvar', 'test', get_permalink() ) ?>"> .... </a> 这将导致: www.example.com/pagename/test 如何做到这一点?我已经花了几个小时阅读文档,却找不到解决方案。

1
如何从3.5.2中的分层自定义类型中删除段符
我知道不建议这样做,并且关于此论点的讨论很多。不幸的是,经过一周的尝试和测试,我还没有从我的自定义类型中删除该标签。情况如下: 我需要的网址结构 发布/ blog / my-blog-post [确定!] 页/ parent-service / service [确定!] 投资组合/投资组合/我的第一手工作 [确定!] 静态/ parent-static-page / static-page [<<< ---这是问题所在] 我的配置 WordPress的3.5.2 自定义类型“静态”:分层;没有任何“重写”规则。 自定义类型“投资组合”:不分层;'重写'=>数组('with_front'=> false) 固定链接结构:/ blog /%postname%/ 作为首页,我将静态页面设置为“博客” 问题 发表博客/ my-blog-post [确定!] 页面/ websites / dynamic-sites [确定!] 投资组合/投资组合/我的第一手工作 [确定!] 静态/ who-i-am / terms [<<< ---这是问题所在] 我尝试过的 没有 最初,“ static”帖子“ …

1
像qTranslate一样重写多语言网站的规则?
我想编写自己的用于语言切换的小插件。为此,第一件事就是使重写规则运行。我已经在网上浏览了2个小时,但是还没有找到我的问题的答案。 我想有这样的:http://www.mysite.com/de/post-title/或http://www.mysite.com/de/projects/project-title/ 因此,基本上,我想做的是保留当前url及其所有参数,只需在站点url和路径之间添加当前活动的语言片段即可。到目前为止,这是我的代码: function rewrite_rule_de(){ add_rewrite_tag('%lang%','([^&]+)'); add_rewrite_rule('^de/(.+?)/?$', 'index.php?p=$matches[1]&lang=de', 'bottom'); global $wp_rewrite; $wp_rewrite->flush_rules(); } add_action('init', 'rewrite_rule_de');

1
如何从现有的永久链接中删除日期?
在对博客上的日期进行了一些研究之后,将其从现有帖子中删除似乎是一个好主意。 考虑: 自托管(在Bluehost上) 现有职位超过1000个 所有帖子均由Google编制索引,其中许多链接都来自其他域。许多帖子都链接到博客中。不想断开链接。 不想失去Pagerank或Google内帖子的年龄。这非常重要,因为大多数流量都来自Google,而且许多网页的排名都不错。 当前的URL是: http://www.thedomain.com/blog/2012/07/01/blah-blah-blah-blah/ 新网址应为 http://www.thedomain.com/blah-blah-blah-blah/ 我知道可以用ModRewrite完成,但这是最好的方法吗?Google会知道这是同一篇文章吗? 是否可以更改永久链接?


1
自定义帖子类型固定链接端点
我有一个称为“目的地”的自定义帖子类型,并且已将帖子类型的EP掩码设置为默认EP_PERMALINK。我添加了两个端点,如下所示: add_filter( 'query_vars', 'add_query_vars'); function add_query_vars($vars){ $vars[] = "tours"; $vars[] = "activities"; return $vars; } add_action('init', 'add_endpoints'); function add_endpoints(){ global $wp_rewrite; add_rewrite_endpoint('tours', EP_PERMALINK); add_rewrite_endpoint('activities', EP_PERMALINK); $wp_rewrite->flush_rules(); } 现在,如果我在普通帖子上对此进行测试,它将重定向到我需要它的模板(我为单个模板挂钩提供了模板重定向) 即。somesite.com/test-category/test/activities/ 但是对于帖子类型(分层的),它只是从网址中删除了端点,并停留在single-destination.php模板上 即。somesite.com/destination/south-africa/kruger-national-park/activities/ 变成 somesite.com/destination/south-africa/kruger-national-park/ 任何帮助或指导将不胜感激。我已经为此努力了几个小时,没有结果:( 谢谢

4
如何将多个分类法附加到URL?
URL中的多个分类法 如何将多个分类法附加到具有以下内容的URL: 职位类型:产品 分类法:product_type 分类:product_brand 添加新产品并选择该产品的类型和品牌: 添加新产品时,有两个分类框(product_type和product_brand)。我们将此称为“ 测试产品1”。我们要做的第一件事是打勾我要处理的产品类型,例如手机。接下来,我想打勾该产品所属的品牌,比如说三星。 现在,“ 测试产品1 ”与类型“手机”和品牌“三星”相关联。 所需的最终结果是: /产品 »查看所有自定义帖子 / products / cells手机 »使用分类手机查看所有自定义帖子 / product / cell-phones / samsung / »查看所有分类为手机和三星的自定义帖子 / products / cells-phones / samsung / test-product-1 »查看产品(单个自定义帖子) 问题 一个人如何做到这一点?我最初的想法是使用一种分类法,将“手机”作为“三星”的父项。实际上,附加分类法及其术语并不是那么困难。但这导致了许多其他问题,其中一些是众所周知的,有些不是很多。无论如何,它不能那样工作,因为它会发出404问题,而WP不允许某些事情。 WP.org»分类存档模板 这导致我重新考虑了结构,不得不离开分类法及其术语,我认为;为什么不创建第二分类法,并将其与帖子类型相关联,并将其附加到网址? 确实是个好问题,但是如何?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.