Wordpress使用自定义循环在子页面上显示父项内容

时间:2012-03-18 20:05:49

标签: wordpress loops conditional parent-child

我创建了一个名为“电影”的分层自定义帖子类型。它是分层的,因此它可以有子元素。

我在single-films.php中使用条件语句来显示来自子页面的父页面的不同内容,如下所示:

<?php while(have_posts()) : the_post(); ?>

<?php if( $post->post_parent != 0 ) {
    echo "Child Page";
} else {
    echo "Film Page";
} ?>
<?php endwhile; ?>

在页面是子页面的情况下,我想使用在父页面上输入的值,而不是子页面。因为已经创建了循环,所以我需要找到一种方法从子页面上的父页面中提取内容。我需要它从它的父母那里拉出我想要的任何内容(自定义字段,标题,特色图片等)。知道如何修改这个循环以从其父级中提取内容吗?

2 个答案:

答案 0 :(得分:4)

Wordpress有一个很好的get_post函数,您可以像这样使用它来获取父级的标题,例如:

<?php 

if ($post->post_parent != 0) {
  $parent = get_post($post->post_parent); 
  echo $parent->post_title;
} ?>

您可以通过其键/名称和父母的帖子ID访问任何自定义字段:

<?php

$image = wp_get_attachment_image_src(get_post_meta($post->post_parent, 'custom-field-key', true));
echo '<img src="' . $image[0] . '" />';
?>

这适用于Wordpress的Advanced Custom Fields插件。

答案 1 :(得分:1)

我知道这有点晚了但是它确实适用于ACF,但它只会抓取缩略图(裁剪图像)。要获得完整的完整图像,您需要稍微修改一下代码。

<?php
$image = wp_get_attachment_image_src(get_post_meta($post->post_parent, 'custom-field-key', true), 'full');
echo '<img src="' . $image[0] . '" />';
?>

玩得开心。

认为这可能会对将来有所帮助。