【问题标题】:Rewrite custom post type URL in search在搜索中重写自定义帖子类型 URL
【发布时间】:2021-08-15 00:06:24
【问题描述】:

我有一个网站,其中有一个自定义帖子类型(来自CoAuthors Plus 的客座作者)。使用a plugin,我设法使自定义类型的“客座作者”帖子可以通过 WordPress 旧版搜索进行搜索。

现在,作者已正确显示在搜索结果中。虽然,它们链接到了错误的页面,/?post_type=guest-author&p=2148,这会导致 404。

我希望能够获取 URL,对其进行解释并重定向到正确的页面(格式为 /archives/author/name-surname/

我正在尝试使用重写 URL,但我无法捕获数据并制定重写。

【问题讨论】:

  • 似乎是永久链接设置问题。您可以尝试的一件事是转到“设置”->“永久链接”。只需点击«保存»。在某些时候为我做了诀窍。如果没有,请检查永久链接设置是否有错误。您可能想检查这些永久链接设置的全部内容。 wordpress.com/support/permalinks-and-slugs
  • 我不认为是永久链接问题,更多的是搜索扩展器的索引错误。我正在寻找允许我手动更正链接的代码解决方案。
  • 那么,您是否尝试过保存永久链接设置?
  • 是的,我做到了,没有什么新鲜的......

标签: wordpress mod-rewrite url-rewriting


【解决方案1】:

以下代码更改了guest-authors 的永久链接。它使用来自 CoAuthor 插件的方法输出来宾作者链接。

至少现在根据插件的意图,您拥有正确的链接。

它们将采用以下形式:

{site_url}/author/{author_slug}

这是要包含在functions.php中的代码:

function adjust_permalink($permalink, $post){
    $post_type = get_post_type($post);
    if($post_type === 'guest-author'){
        global $coauthors_plus;
        $author = $coauthors_plus->get_coauthor_by('ID', $post->ID);
        $permalink = get_author_posts_url( $author->ID, $author->user_nicename );
    }
    return $permalink;
}
add_filter('post_type_link','adjust_permalink',10,2);

现在,您应该可以在您的主题中为作者创建模板 php 文件:author.php

【讨论】:

  • 我无法用言语表达我的感激之情:你确实拯救了我的夜晚(也许还有我的周末)!
猜你喜欢
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 2013-06-20
相关资源
最近更新 更多