Итак, в основном у меня есть главная родительская страница со страницами подкатегорий, где каждая страница подкатегории имеет дочерние страницы, и с использованием предоставленного кода она отлично работает, отображая каждого родителя с его дочерними элементами.
Я хотел бы знать, что могу иметь полный контроль над списком, потому что только для родительских вкладок я хотел бы добавить изображение с помощью ACF (дополнительные настраиваемые поля), что означает, что если эта родительская страница в CMS имеет логотип ($tab_logo = get_field('parent_tab_logo');), добавьте его в листинг с родительским именем.
Код:
<?php
// find parent of current page
if ($post->post_parent) {
$ancestors = get_post_ancestors($post->ID);
$parent = $ancestors[count($ancestors) - 1];
//Display Parent post Title
$parent_post_id = $parent;
$parent_post = get_post($parent_post_id);
$parent_post_title = $parent_post->post_title;
} else {
$parent = $post->ID;
}
$children = wp_list_pages("sort_order=asc&title_li=&child_of = " . $parent . "&echo=0");
if ($children) { ?>
<div id = "side" class = "col-lg-4 col-md-4 col-sm-12">
<h4><?php echo $parent_post_title; ?></h4>
<div class = "row">
<div class = "col-lg-10 col-md-12 col-sm-12">
<ul id = "side-navi" class = "list-unstyled mb-0 ">
<?php echo $children; ?>
</ul>
</div>
</div>
</div>
<?php } ?>
Текущий результат: (пример)
Главная родительская страница
Parent-1 (дочерний элемент Main Parent PAGE)
child1 (потомок Parent-1)
child2 (потомок Parent-1)
Parent-2 (дочерний элемент Main Parent PAGE)
child1 (потомок Parent-2)
child2 (потомок Parent-2)
Ожидаемый результат: (пример)
Главная родительская страница
Родитель-1 (ИЗОБРАЖЕНИЕ с этой страницы с использованием acf = $tab_logo = get_field('parent_tab_logo');)
ребенок1
ребенок2
Родитель-2 (ИЗОБРАЖЕНИЕ с этой страницы с использованием acf = $tab_logo = get_field('parent_tab_logo');)
ребенок1
ребенок2
Используя ACF, я не хочу добавлять изображения с использованием фонового изображения, я хочу, чтобы пользователь добавлял изображение через CMS с помощью ACF, но, используя <?php echo $children; ?>, я не могу сказать пример <li>$parent <img class = "img-fluid" src = "<?php if ($tab_logo ){ echo tab_logo; ?>"> </li>, чего я пытаюсь достичь. Есть смысл?
вы можете предоставить get_field() идентификатор, который у вас есть для родителя - $tab_logo = get_field('parent_tab_logo', $parent_post_id);






Это должно быть так просто, как говорится в документации ACF.
Вам нужно получить поле, когда вы проверяете родителя, а затем отображаете поле в соответствующем разделе, передача идентификатора сообщения также может сэкономить вам некоторые головные боли, поэтому он нацелен только на ваши родительские элементы.
Надеюсь это поможет.
<?php
$parent_image = get_field('image', $post_id);
if ( !empty($parent_image) ): ?>
<img src = "<?php echo $parent_image['url']; ?>" alt = "<?php echo $parent_image['alt']; ?>" />
<?php endif; ?>
Дело в том, что я пытаюсь настроить таргетинг на родителей в <?php echo $children; ?>, которые состоят из подчиненных и дочерних страниц подчиненных родителей. Также обновите мой вопрос, чтобы вы увидели, что <?php echo $children; ?> является дочерними страницами <?php echo $parent_post_title; ?>, надеюсь, вы можете помочь, спасибо.
Вы должны иметь возможность сделать что-то вроде приведенного ниже, где вы передаете идентификатор публикации родителей в функцию get_field (). В зависимости от того, как вы настроили изображение в ACF, вам может потребоваться обновить способ извлечения образа.
<?php
// find parent of current page
if ($post->post_parent) {
$ancestors = get_post_ancestors($post->ID);
$parent = $ancestors[count($ancestors) - 1];
//Display Parent post Title
$parent_post_id = $parent;
$parent_post = get_post($parent_post_id);
$parent_post_title = $parent_post->post_title;
$parent_image = get_field('parent_tab_logo', $parent_post_id);
} else {
$parent = $post->ID;
}
$children = wp_list_pages("sort_order=asc&title_li=&child_of = " . $parent . "&echo=0");
if ($children) {
?>
<div id = "side" class = "col-lg-4 col-md-4 col-sm-12">
<h4><?php echo $parent_post_title; ?></h4>
<?php
if ( !empty($parent_image) ){
?>
<img src = "<?php echo $parent_image['url']; ?>" alt = "<?php echo $parent_image['alt']; ?>" />
<?php
}
?>
<div class = "row">
<div class = "col-lg-10 col-md-12 col-sm-12">
<ul id = "side-navi" class = "list-unstyled mb-0 ">
<?php echo $children; ?>
</ul>
</div>
</div>
</div>
<?php
}
?>
Привет, человек, мне нужно изменить свой вопрос после просмотра вашего ответа, я понял, что что-то пропустил, а именно: все, что у <?php echo $children; ?> есть пример страницы с основной категорией Stay, а затем страницы подкатегорий, где на страницах подкатегорий есть дети, я пытаюсь воспроизвести изображение из страницы подкатегорий. плохо объясню, лучше в вопросе, плохо быстро поправлю, но спасибо за помощь.
Мне очень жаль, но я изо всех сил пытаюсь понять ваш вопрос: / Следует отметить, что вы можете столкнуться с неопределенным индексом, где вы выводите $ parent_post_title, если родитель не найден. Стоит ли добавить вокруг этого условную проверку?
Круто, я добавлю условную проверку. Также обновите мой вопрос, посмотрите на текущий результат и ожидаемый результат, чтобы увидеть, откуда взялось изображение. Надеюсь, это поможет вам понять; /
В чем же тогда проблема? Вы полностью контролируете список и логотип