【问题标题】:Wordpress keeps adding -2 to permalinksWordpress 不断添加 -2 到永久链接
【发布时间】:2013-01-16 16:26:37
【问题描述】:

我目前正在为房地产经纪人构建一个对象列表,我们将所有对象缓存在一个名为“objekt”的自定义帖子类型中,并且它具有永久链接重写“objekt”。

我们在服务器的根目录中有一个名为wp-fetch-items.php 的文件,房地产经纪人应用程序会在系统中出现新对象时对其进行 ping。这会导致“objekt”类型的所有帖子被删除,然后它会通过一个 XML 文件并将所有对象再次添加到系统中。

一切运行良好,但帖子在 URL 中一直为 -2,即使这是第一次创建帖子,也没有任何名称与远程相似的内容。

例如,我使用 wp_insert_post 插入名称为 152912 的对象的 post_name 为 152912-2

我使用以下代码创建对象:

$insertedPost = wp_insert_post(array(
    'post_author' => 1,
    'post_type' => 'objekt',
    'ping_status' => 'closed',
    'post_status' => 'publish',
    'post_name' => $objectData['title'],
    'post_title' => $objectData['title']
), false);

在创建它们之前,我会遍历每个类型为“objekt”的帖子并使用以下代码删除它们:

wp_delete_post(get_the_ID(), true);

我特别添加了 true 作为第二个参数,以从数据库中永久删除该对象,并且我所做的所有搜索都证明它没有任何剩余。

我还尝试使用此代码在删除后刷新永久链接,但对这种情况没有任何帮助:

global $wp_rewrite;
$wp_rewrite->flush_rules();

您是否遇到过这个问题,您知道如何解决吗?如果您知道这可能是什么原因,请回复!

提前致谢, 乔纳森

【问题讨论】:

  • 进入您的永久链接设置,看看是否添加了 2。如果是这样,请将其删除。发生在我的几个博客上。
  • 此外,我还会检查 .htaccess 文件,以确保没有任何重写规则指示问题。
  • 您好,感谢您的回答。我检查了永久链接设置,目前设置为“/%year%/%monthnum%/%day%/%postname%/”。无论我做了什么更改,帖子仍然使用相同的名称。我尝试删除 .htaccess 中的所有规则,但无济于事。

标签: php xml wordpress custom-post-type


【解决方案1】:

Wordpress 对数字帖子名称有特殊处理。这是故意的,因为它假定 URL 中的数字 ID 是帖子的实际 ID。添加-2 可确保将其解释为字符串以及帖子名称。否则,它会尝试显示http://yoursite/?p=152912,如果此帖子 ID 不存在,则会导致 404。

到目前为止我发现的唯一解决方案:避免使用数字名称。

(我写帖子是因为内部一切都是帖子,甚至是页面和图像)

编辑:

我找到了ticket that introduced this behaviour

【讨论】:

    【解决方案2】:

    检查您是否还没有包含该固定链接的帖子。如果该帖子中已存在永久链接,WordPress 会将-2 附加到永久链接。还要检查你的垃圾箱。

    【讨论】:

    • 感谢您的回复,尽管您上面的帖子是正确的。
    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2019-01-29
    • 2018-11-01
    相关资源
    最近更新 更多