通过获取佩奇父母的ID来制作音频播放列表

时间:2017-02-20 作者:Nicholas Kearney

所以现在,当帖子更新时,网站会自动创建页面。我希望此页面包含音频播放列表。所以我要做的就是简单地添加短代码:[playlist].然后,当音频文件附加到页面时,播放列表会自动生成。

我可以确认此方法适用于指定的ID。

The problem is, 这3个不同的页面,我需要音频被附加到所有三个页面。因此,我的解决方案是创建另一个页面,将音频文件设置为该页面的子级,并将原来的3个页面设置为新页面的子级。然后我可以使用[playlist] shortcode,但告诉它从父页获取id。

Example:

[playlist id="<?php get_parent_id ?>"]
或者类似的东西。

问题是我无法获取父id。我尝试了多行不同的代码,但都没有效果。播放列表仅获取默认的0 ID,当id="" 为空。

这一切都是为了functions.php 我的主题目录中的文件。

--

也许有更好的方法可以做到这一点,thusfar,这似乎是最简单的解决方案,只要我能得到直接的父ID。它必须存在。

2 个回复
最合适的回答,由SO网友:Nicholas Kearney 整理而成

Here is my solution:

目录是我帖子中的一个自定义字段。

我制作了一个只包含目录号的“虚拟”页面,并将MP3附加到此页面。

$catalogue = get_field(\'catalogue\');
$parent_id = get_page_by_title(strtolower($catalogue));  
$direct_id = $parent_id->ID;
$promo_page_content = [playlist id=" . $direct_id . \'"]\';
我意识到这很可能不是写这篇文章的最佳方式。我是PHP新手。但现在,这将把它放在一起。希望这能帮助其他有同样问题的人。

SO网友:Svartbaard

您是否尝试过以下功能:

<?php get_post_ancestors( $post-ID ) ?>
返回数组中的最后一个post应该是最高级别的祖先。

这是抄本上的。

相关推荐

在短码中加载带有ID的自定义帖子类型

我第一次提出了一个主题。我为横幅/行动调用创建了一个自定义的帖子类型,我想在不同的帖子中使用一个快捷码来包含这些横幅/行动调用。短代码应如下所示:[banner id=123].到目前为止,所有的横幅都会显示出来,我的快捷码参数不会过滤结果。我的失败在哪里? function mrt_shortcode_banner( $atts ) { // Attributes $atts = shortcode_atts( array(