Wordpress - 在不同的自定义帖子类型上显示存档和单个帖子

问题描述 投票:0回答:1

我对使用 Wordpress 进行开发还比较陌生,我首先是设计师,其次是开发人员。

我正在创建一个目录网站。我有一个会员登录区域,用户可以在帖子类型“我的企业”下创建帖子。然后,一旦登录,他们就可以从前端访问他们的帖子进行编辑;域名.com/my-business/xyz

我有上述工作。

现在让我困惑的是,我想在不同的帖子类型“业务”下为非登录用户在这样的网址上显示存档和上面提到的帖子数据; domain.com/business(作为存档)和domain.com/business/xyz 作为帖子。

我不确定我是否以错误的方式处理这个问题,任何提示或建议将不胜感激。

提前谢谢您。

如果我使用 WP 查询循环在 archive-business.php 文件中调用自定义帖子类型“my-business”,则标题和所有永久链接都希望转到“my-business”下的原始帖子,而不是“business”

wordpress wordpress-theming advanced-custom-fields custom-post-type
1个回答
0
投票

保持迄今为止所做的一切工作,我这样做的方法是:

  1. 创建新的帖子类型:商业。
  2. 使用 wp_insert_post 挂钩:https://developer.wordpress.org/reference/hooks/wp_insert_post/ 检测何时创建/更新“my-business”类型的帖子。发生这种情况时,检查是否存在具有相同 slug 的“业务”类型的帖子,如果不存在,则创建它。
  3. 如果需要,打开并更新每个我的业务帖子,以便为每个帖子创建一个业务帖子,或者编写一个脚本来循环遍历所有帖子并处理此问题。
  4. 要处理业务存档页面,请使用 pre_get_posts 钩子: https://developer.wordpress.org/reference/hooks/pre_get_posts/ 在回调中,测试是否正在访问业务存档页面,以及是否正在访问业务存档页面。是,切换到 my-business 帖子类型 ( $query->set( 'post_type', 'my-business' ); ) 此代码将放入functions.php 或插件中。这将使当有人访问 /business 页面时,他们会看到 my-business 类型的帖子列表。
  5. 在 archive-business.php 中,不再输出永久链接(现在是指向 /my-business/xyz 的链接),而是 get_the_permalink 并将“my-business”替换为“business” - 现在此页面上的所有链接都将转到“/business/xyz”。
  6. 在循环内的 single-business.php 中,收集帖子的 slug 并使用它来查询具有相同 slug 的 post_type my-business 的帖子 - 这将使您可以访问企业所有者设置的所有值对于企业来说,您可以随心所欲地在这里展示它们。
© www.soinside.com 2019 - 2024. All rights reserved.