Wordpress отображает родительский контент на дочерней странице, используя пользовательский цикл - PullRequest
0 голосов
/ 19 марта 2012

Я создал иерархический пользовательский тип записи, который называется «фильмы».Он иерархический, поэтому может иметь дочерние элементы.

Я использую условный оператор в моем 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 ]

4 голосов
/ 19 марта 2012

Wordpress имеет замечательную функцию get_post , вы можете использовать ее следующим образом, чтобы получить заголовок родителя, например:

<?php 

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

Вы можете получить доступ к любому настраиваемому полю по его ключу / имени и идентификатору записи родителя:

<?php

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

Это точно работает с Advanced Custom Fields Плагин для Wordpress.

1 голос
/ 27 сентября 2013

Я знаю, что это немного поздно, но да, он работает с ACF, но он только выбирает миниатюру (обрезанное изображение).Чтобы получить точное полное изображение, вам нужно немного изменить код.

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

повеселиться.

Просто подумайте, что это может помочь кому-то в будущем.

...