WordPress:在自定义帖子类型中获取模块名称的帖子 slug

Posted

技术标签:

【中文标题】WordPress:在自定义帖子类型中获取模块名称的帖子 slug【英文标题】:WordPress: Get post slug for name of module in Custom Post Type 【发布时间】:2021-10-01 09:46:40 【问题描述】:

有一个名为 Post Modules 或 post-modules 的自定义帖子类型。我使用高级自定义字段创建了许多可重复使用的模块,以允许我在另一个 CPT 中插入内容。每个模块基本上都是一个帖子。

我想要做的是在 post-modules 中获取帖子的 slug 并将其显示为我的部分中的一个类。所以它会是这样的:

<section class="post-module-name"></section>

帖子的标题也可以接受。

所以我想出了以下内容:

<section class="toolkit-module scroll-section <?php echo $post->post_title; ?> <?php echo $module_type; ?>" data-index="<?php echo $i; ?>" data-module-id="<?php echo $module_id; ?>" data-module-type="<?php echo $module_type; ?>">Content Goes Here</section>

但这会拉出显示所有这些模块而不是模块段/名称本身的帖子的标题。

因此,如果我有一个名为“视频”的帖子,并且我有两个模块,比如说音乐视频和运动视频,我想将音乐视频合并到我的第一部分的课程中,并将运动视频合并到我的第二部分。

有什么方法可以从我实际从中提取数据的模块的帖子类型和名称中提取帖子 slug?

【问题讨论】:

【参考方案1】:

查看 wp_query。您需要使用它来访问自定义帖子类型。

https://developer.wordpress.org/reference/classes/wp_query/

【讨论】:

【参考方案2】:

是的,如果您已经有一个 WP_Post 对象,您可以按如下方式使用它。

echo $post->post_type; // Outputs the actual type of a WP_Post object
echo $post->post_name; // Outputs the slug of the post;

您可以查看here 的所有属性,在您的特定情况下,您需要类似以下内容:

<section class="toolkit-module scroll-section <?php echo $post->post_name; ?> <?php echo $post->post_type; ?>" data-index="<?php echo $i; ?>" data-module-id="<?php echo $post->ID; ?>" data-module-type="<?php echo $post->post_type; ?>">Content Goes Here</section>

【讨论】:

不幸的是,这会拉取当前帖子的帖子类型和名称。我正在尝试提取 ACF 模块所在的帖子的帖子类型和名称。这是不同的。 只要你有帖子的ID,你总是可以使用get_post得到这个值【参考方案3】:

看起来如果我使用 php echo $module_id;我可以显示模块的 ID 号,它至少会显示一些独特的东西。除了使用 module_type 和 module_id 之外,我仍然找不到任何关于如何访问 ACF 模块的文档。

【讨论】:

【参考方案4】:

找到了解决办法。这样做了。

$module_slug = $module->post_name;

然后显示它:

<?php echo $module_slug; ?>

【讨论】:

以上是关于WordPress:在自定义帖子类型中获取模块名称的帖子 slug的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 在自定义帖子类型存档页面上按日期排序

WordPress - 无法从自定义帖子类型中的元框获取价值

Gatsby:在自定义帖子类型上使用 GraphQL 查询和自定义分类

如何在自定义帖子类型UI菜单图标区域添加字体真棒图标?

带上传的 WordPress 3.0 自定义帖子类型

从 Wordpress 中自定义帖子类型的类别中获取 ACF 文本字段值