【发布时间】: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