【问题标题】:Randomizing post urls随机化帖子网址
【发布时间】:2020-03-05 14:07:52
【问题描述】:

我的自定义帖子需要通过简单版本的哈希来保护。 我已经在谷歌和堆栈溢出上搜索了大约 4 个小时,但我似乎找不到正确的答案。

有没有办法在 ID 级别更改为新帖子创建的 slug 并对其进行哈希处理?
所以不要有:
wordpress.com/blog/143

散列 id 并将其作为 url:
wordpress.com/blog/202cb962ac59075b964b07152d234b70

global $wp_rewrite;
$custom-posts_structure = '/custom-post/'. md5('%custom-post%');
$wp_rewrite->add_rewrite_tag("%custom-post%", '([a-z0-9]+)', "custom-post=");
$wp_rewrite->add_permastruct('custom-post', $custom-posts_structure, false);

我拼命尝试了上面的代码,但这只会散列字符串并且不会检索唯一 ID。

【问题讨论】:

  • 每次使用 "md5('%custom-post%')" 你会得到相同的哈希值,如果你想得到不同的使用唯一数据(它可以是附加或前置)例如:md5( '%custom-post%'.time()) - 它使用当前时间戳对字符串进行哈希处理
  • “有没有办法改变为新帖子创建的 slug” - 对于这部分,你应该挂钩到适当的位置 - stackoverflow.com/questions/4518527/… 这是否甚至需要之后还有很多,现在不确定。这基本上只是用不同的东西替换post_name,所以如果您使用基于帖子名称的默认路由,我认为您可能不需要向重写设置本身添加任何内容。
  • “既然不需要用户登录就可以将数据添加到他们的记录中(...)”出于好奇,你怎么知道哪些记录属于谁?
  • “仅仅拥有一个 ID 作为链接会让非技术人员很容易进入其他人的记录”......正如众所周知的短语所说:“默默无闻的安全不是安全” .如果您不希望人们能够获取其他人的东西,请使用一些适当的身份验证和授权。即使您使链接更加复杂,也不会使其无法被发现。它可能可以通过其他方式搜索或找到(在您的应用程序中和使用其他工具),并且用户也很容易彼此共享链接(有意或无意地)。
  • @CBroe 我之前对您的评论完全是出于疲惫。过滤器解决了我的确切问题谢谢!

标签: php wordpress wordpress-theming


【解决方案1】:

有没有办法更改为新帖子创建的 slug

对于这部分,你应该钩到适当的地方 - 见Customize the auto generation of Post Slug in Wordpress

这基本上只是用不同的东西(你的哈希)替换post_name,所以如果你使用基于帖子名称的默认路由,你不需要向重写设置本身添加任何东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2013-07-16
    • 1970-01-01
    相关资源
    最近更新 更多