当前位置: 首页 > 知识库问答 >
问题:

使用“团队成员”自定义帖子类型,而不是博客文章的作者

狄峰
2023-03-14

为了搜索引擎优化的目的。。。。客户希望作者链接指向团队成员的个人主页,而不是默认的作者主页。。。。例如:

有一篇由用户a撰写的博客文章。作者链接现在指向:

/author/usera

但他们希望它指向

/our-team/user-a

“我们的团队”是一个自定义帖子类型,用户a是其中的一个帖子。

我尝试了一些变通解决方案,但没有找到一个好的方法来建立作者和团队成员之间的关系。如果我能在选择作者时从自定义帖子类型中添加团队成员...这将解决我的问题,尽管我认为这相当复杂——但希望能让我知道我想完成什么。

到目前为止,我的解决方法是将author base重写为自定义post类型的slug,它处理了一半,但是author和团队成员之间仍然没有关系,因此我使用作者元(user\u url)在用户配置html" target="_blank">文件中获取“网站”字段,并在那里输入团队成员的url。

它的工作,但加倍的工作,因为你必须添加团队成员到我们的团队,以及添加他们作为用户/作者,然后需要管理员的知识添加用户/作者添加生物网址在网站字段,否则。...它不会很好地工作,所以我想要一个更干净的解决方案。

让我知道这是否有意义,如果有更好的方法...

谢谢

共有1个答案

孔征
2023-03-14

目前,我看不到用户帐户的自动映射→ 团队成员的职位发生了变化。因此,有多种方法可以通过手动将用户帐户映射到团队成员帖子来实现这一点。

  1. 将作者的网站设置为团队页面的URL
  2. 高级自定义字段:创建为所有用户帐户显示的字段组,并包含一个帖子字段(仅限于团队帖子),以便您可以为每个WP用户手动选择一个团队帖子

我将向您展示第一个选项。

假设每个用户帐户(用户)都有指向团队成员页面集的URL,例如,在usera的用户配置文件中,您可以看到:网站:https://your-site/our-team/user-a

然后你可以添加一个过滤器来修改作者链接,这样,添加到你的functions.php或自己的插件:

add_filter( 'author_link', 'team_author_link', 10, 3 );
function team_author_link( $link, $author_id, $author_nicename ) {

  $userinfo = get_userdata($author_id);
  // if the user's Website field is not empty, replace the author link:
  $link = empty($userinfo->data->user_url) ? $link : $userinfo->data->user_url;
  return $link;
}

现在,您将有您的作者的所有链接链接到他们的“网站”,希望已设置为团队成员页面。

这也可以通过高级自定义字段来实现,您可以添加一个显示用户角色的字段组-

然后,您可以在每个作者的用户配置文件中选择一个团队帖子,并将筛选功能更改为:

add_filter( 'author_link', 'team_author_link', 10, 3 );
function team_author_link( $link, $author_id, $author_nicename ) {

  $team_post_id = get_field('team_post', $author_id);
  // if the team post is set, get the permalink to the team post:
  $team_link = get_permalink($team_post_id);
  $link = ($team_link !== false) ? $team_link : $link;
  return $link;
}

请记住,在这两种情况下,每个用户都可以篡改其URL。使用高级自定义字段,还可以创建一个仅管理选项页面,在该页面中可以将用户帐户映射到团队帖子,但这有点复杂。

 类似资料:
  • 我正在构建一个WordPress主题,其中的博客文章是使用一个自定义的文章类型标题为“博客” 博客页面位于http://website.com/blog/上,当发布“blogs”类型的文章时,它只发布到/blog/page上。我的问题是,当我单击一个博客标题来查看单个博客时,URL被重定向到http://website.com/post-title,而不是http://website.com/bl

  • 我正在建立一个网站,有“团队成员”部分和“博客”部分。团队成员是自定义帖子类型。 客户要求博客帖子中的作者链接应该指向相关的团队成员页面,而不是WordPress中的默认作者页面(基本上他们根本不希望有默认的作者页面)。 我发现@Damocles提供了这个解决方案——使用“团队成员”自定义帖子类型,而不是博客帖子的作者 基本上,他提出的解决方案很简单,与我最初解决这个问题的想法一模一样: 创建“发

  • 我有一个自定义的帖子类型和一个像这样创建的公文包分类法: 当我在查询中使用它时,它的工作原理应该是这样的。它显示在后端的菜单中,以及此自定义帖子类型的类别。 我的问题是,当我尝试从某个类别检索所有帖子时(通过单击类别名称),我发现

  • 我创建了一个WordPress自定义帖子类型,然后我创建了REST API自定义endpoint以获取所有帖子运行良好。然后我创建了另一个自定义endpoint以按ID获取单个帖子。例如http://localhost:8888/wordpress/wp-json/lc/v1/cars/120 我已经创建了一些帖子,每次我将路线末端的ID更改为118或116时,它都会显示最新的post-ID 12

  • 本文向大家介绍WordPress 3.0中的自定义帖子类型,包括了WordPress 3.0中的自定义帖子类型的使用技巧和注意事项,需要的朋友参考一下 本文与WordPress 3.0相关。此处发布的许多代码在以前的版本中将不起作用,并且某些信息可能会在较新的版本中更改。 WordPress已经在系统中内置了五种不同的内容类型。 帖子 这是标准的内容类型,通常是博客安装中使用最多的内容。帖子往往会

  • 本文向大家介绍WordPress 注册自定义帖子类型,包括了WordPress 注册自定义帖子类型的使用技巧和注意事项,需要的朋友参考一下 示例 假设您有一个图书馆网站,并且想要一个名为Books的自定义帖子类型。可以注册为 如此简单,您现在就注册了一个自定义帖子类型。 该代码段可以放在主题functions.php文件中,也可以放在插件结构中。