wordpress - 将博客文章作者链接替换为团队成员链接 (CPT + ACF)
问题描述
我正在建立一个具有“团队成员”部分和“博客”部分的网站。团队成员是自定义帖子类型。
客户要求博客文章中的作者链接应该指向相关的团队成员页面,而不是 WordPress 中的默认作者页面(基本上他们根本不希望有默认作者页面)。
我发现@Damocles 提供的这个解决方案 -使用“团队成员”自定义帖子类型而不是作者来发布博客帖子
基本上他提出的解决方案很简单,完全符合我最初解决这个问题的想法:
- 创建“帖子对象”ACF 字段并将其设置为通过“团队成员”自定义帖子类型进行过滤
- 将此字段附加到用户帐户
- 转到用户个人资料并从下拉菜单中选择正确的团队成员
- 然后在functions.php中使用过滤器自动将作者链接替换为相关的团队成员url
有道理,但不幸的是,它不想在我的网站上工作。我什至和他一样为 ACF 字段使用了相同的名称,并在 functions.php 中使用了完全相同的代码:
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。我不知道,也许我的主题是覆盖查询什么的,所以无法从博客文章视图中获取自定义文章类型的 URL?
有人可以帮我实现它吗?我想将团队成员(自定义帖子类型)附加到 WordPress 中的用户帐户,并通过 functions.php 将作者链接替换为关联的团队成员页面 url。
解决方案
这是因为你缺少一个前缀,告诉 ACF 它应该在用户身上寻找.. - 试试这个
$team_post_id = get_field('team_post', 'user_'.$author_id);
文档在这里:https ://www.advancedcustomfields.com/resources/how-to-get-values-from-a-user/
推荐阅读
- javascript - 使用后退和下一个按钮在选项卡之间导航 - material-ui(0.18.7 版)
- python - BFS 以每个顺序检索值的元素
- c# - 如何在 Unity3D 单元测试中显示代码覆盖率?
- c++ - [aws-sdk-cpp][s3] 使用 getObject 下载二进制文件
- c# - 在第二个条目c#中使用第一个条目的ID
- sql - 设置 ON DELETE RESTRICT 时,SQLite 能够删除引用的行
- c++ - 如何修复 Mujoco CmakeLists 构建错误“/usr/bin/ld: 找不到 -lglfw”?
- css - 有没有办法将页脚按钮设置为白色
- java - 在与测试容器的集成测试中,您如何管理 EM 或 EMF?
- sql - 从三个表中选择数据,包括 null