【问题标题】:Wordpress: How do I convert a generated URL (permalink) to a pretty URL?Wordpress:如何将生成的 URL(永久链接)转换为漂亮的 URL?
【发布时间】:2011-01-29 21:02:15
【问题描述】:

在一个插件中,我正在生成一个分页链接到一个类别,
即@987654321@。该类别由 slug 和 id 已知。

有没有办法将此 URL 转换为用户定义的“漂亮的永久链接”格式,
即@987654322@?

(假设我们正在运行 Wordpress 2.8/2.9+)

编辑:由于对我要实现的目标存在一些误解,因此我的想法如下:

  • 类别 ID
  • 页码(即该类别存档的第五页)

使用这些数据,我可以创建指向该页面的 URL,例如,http://localhost/?cat=17&paged=5,并且效果很好。问题是视觉性质的:如果用户启用了漂亮的永久链接,那么这将不太适合。 问题是:我如何从(或)我拥有的信息中获得正确、漂亮的永久链接(即@987654323@)?

编辑 2: 显然,如果用户有漂亮的永久链接禁用,那么就没有漂亮的永久链接。我知道,这真的不是问题的主题……目前,让我们假设用户有一个 arbitrary 永久链接设置。我生成了一个链接,它应该看起来像用户想要的那样。

【问题讨论】:

  • 你不能只在永久链接选项面板中更改这些吗?选择“自定义”并输入 /%postname%/ 这将生成类似于您所拥有的内容,除非此插件以某种方式更改了 url?
  • 我担心我没有理解重点。我的插件对用户设置的永久链接结构一无所知。目前,我只能通过类别 ID 和页码来处理我正在创建链接的页面。我正在寻找的是某种过滤器,可以将生成的 url 修改为用户配置的任何结构。
  • 管理中有一个设置->设置->永久链接
  • @fuzzy lollipop:我知道那个设置,这就是我想要实现的。现在的问题是:Wordpress 是如何做到这一点的,魔法隐藏在哪里,我如何(错误地)为自己使用它? :)

标签: rewrite wordpress permalinks


【解决方案1】:

你看过WP_Rewrite吗?

【讨论】:

  • 是的,但我不确定如何将它用于该任务。
  • 您知道如何为此目的使用 WP_Rewrite 的任何示例吗?我能找到的只是如何添加新的永久链接标签等(该法典再次最有用...)
  • 对不起,我也没用过。我在 Codex 周围做了更多的探索,并遇到了 Rewrite API,也许这会有所帮助? codex.wordpress.org/Rewrite_API
  • 很遗憾没有。据我了解,它反过来工作,允许将“不错的”永久链接解析为 $_GET 变量。非常感谢!
【解决方案2】:

All In One SEO 是否满足您的要求?我实际上以 30 美元左右的价格购买了“专业版”,非常值得。

【讨论】:

  • 很遗憾没有。它似乎没有重写 URL。
【解决方案3】:

我的 Wordpress 安装 (2.9.2) 会自动执行此操作 - 规范 URL 已内置到 Wordpress 中已有一段时间了。也许你的插件是disabling this feature?

【讨论】:

  • 不,绝对不是。 (如果您在主题中的某处添加 <?php echo 'http://localhost/?cat=17&paged=5'; ?> - 或任何类似链接 - 您会看到问题。)
  • 我刚刚用我的主题进行了尝试,Wordpress 正确解释了 URL 并根据我的永久链接设置将我重定向到正确的页面。你用的是 2.9.2 吗?
  • 也许我误解了您的问题 - 如果您只是将 URL 作为字符串回显,那么 Wordpress 不会对它做任何事情。但是如果你把它做成一个链接并点击它,你应该被重定向到正确的页面。
  • 重定向不是问题,问题是它看起来很丑。 :)
  • 将你想要的页码放入一个名为 $pagenumber 的变量中,然后试试这个: ">分类链接
【解决方案4】:

看看这个页面,它很好地解释了永久链接。 http://codex.wordpress.org/Using_Permalinks

您应该在

中找到这些设置

Wordpress->设置->固定链接

我觉得

/%category%/%postname%

朝着你想要的方向前进

您也可以尝试使用 htaccess 重定向您的 url,以下是一些示例:

[http://]perishablepress.com/press/2008/02/06/permalink-evolution-customize-and-optimize-your-dated-wordpress-permalinks/

对不起,darf bis jetzt nur ein link posten pfft... :-(

亲切的问候, 大圣

【讨论】:

  • Alles schön und gut - und danke für die Antwort - aber jeder hier beantwortet alles mögliche,nur nicht meine Frage! :/我的博客帽子漂亮的永久链接和所有的功能,wie es soll。 Wenn ich jetzt ein Plugin schreibe, habe ich als Programmierer aber keine Ahnung davon, was der Benutzer in seinem Blog eingestellt hat。 Ich suche eine Möglichkeit, einen Link zu einer Seite so zu genericieren, dass er sich in die Einstellungen des Blogs einfügt。 Nen hässlichen Linkgenerieren, der seinen Zweck erfüllt, ist kein Problem - einen schönen zu Generieren allerdings zu schon.
  • JA AAABER ... Ich verstehe jetzt besser was du meinst, solange der Bloguser aber kein mod_rewrite angestellt hat, keine .htaccess datei angelegt hat, und oder keine settings under permalinks gesetzt hat lauefst du gegen eine wand ... und da hilft dir auch nicht das dein "plugin" dann ein 漂亮地重写了 macht。 Ohne die einstellungen geht es nun mal einfach nicht。
  • du kannst nach php mod_rewrite checken, und dann vielleicht nach den settings die der user in wordpress eingestellt hat, das sollte sich aus der Datenbank rausziehen lassen ... und dann wuerde ich darauf aufbauen ...
  • @Markus @mahatmanich 为了社区的利益,我们可以保留英文内容吗?里面有话题讨论...
  • @Marc - 当然,我只是用德语解释了我在问题中所说的话。 :)
【解决方案5】:

我猜你已经想通了,但我只是想把它发布给其他人。我想我理解你的情况。如果我没有正确阅读您的问题,则更改管理员永久链接设置不适用。

您可以获取类别 ID,然后使用 get_category_link() 函数获取“漂亮”永久链接。然后将分页追加到末尾。

您可以展开永久链接以获取类别 ID 和分页编号,然后使用上述步骤将它们放在一起。

这就是你要找的吗?

【讨论】:

    【解决方案6】:

    生成链接的正确方法是使用get_category_link 和add_query_arg

    在您的示例中,以下内容将起作用:

    $category_link = add_query_arg( array('paged' => 5), get_category_link($category->term_id));
    

    这将生成 URL,Wordpress 将重定向到正确的页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-26
      • 2014-09-25
      • 1970-01-01
      • 2019-12-11
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多