Я нашел этот ресурс, который я сумел реализовать в своей собственной установки, так как у меня была та же проблема, что и вы:
https://bitbucket.org/Bobadevv/acf-flexible-content-fishpig
В основном это научило меня, что с помощью условных операторов, как:
if ($flexLayout["acf_fc_layout"] == "fct_text_image") {
Вы можете отфильтровать вашу гибкий контент и отображение вещь соответственно.
EDIT: Сделав больше работы над этим, я могу подтвердить, что он отлично работает и должен делать то же самое для ваших нужд.
Давайте начать гибкое содержание:
if ($post->getMetaValue('content')):
$flex = $post->getMetaValue('content');
$pos = 0;
foreach ($flex as $flexLayout) {
Таким образом, здесь мы по существу обработку гибкого контента в качестве поля ретранслятора. Я немного отклонился, добавив счетчик циклов, чтобы иметь динамические идентификаторы (в случае необходимости нескольких экземпляров js).
В этом цикле вам нужно загрузить каждый блок HTML, который вы хотите связать с блоком flex.Во-первых, мы должны определить преграждает путь Magento (в файле wordpress.xml
макета):
<reference name="flexible_content">
<block name="fct_cta_carousel" template="wordpress/fct/fct_cta_carousel.phtml" type="core/template"/>
А затем в цикле выше:
$this->getChild('fct_cta_carousel')->setData("flex_layout", $flexLayout)->setData('pos',$pos);
echo $this->getChildHtml('fct_cta_carousel', false);
Блок PHTML должен выглядеть следующим образом:
<?php
$flexLayout = $this->getFlexLayout();
if ($flexLayout[acf_fc_layout] == "cta_carousel") {
if ($flexLayout[carousel_visibility] == 1) {
$carouID = "homepage-carousel-" . $this->getPos(); //To enable multiple carousels, we need a dynamic ID, based on position in flex content.
echo '<div class="featured-products featured-products-alt featured-products-visible">';
echo '<h2>' . $flexLayout[cta_row_title_carousel] . '</h2>';
echo '<div id="'. $carouID .'" class="featured-carousel">';
foreach($flexLayout[cta_rows_carousel] as $row){
echo '<div class="carousel-prod">';
echo '<div class="col">';
echo '<div class="img-overlay">';
echo '<img src="'.$row[cta_row_image].'" alt="'. $row['cta_row_title'] .'">';
echo '</div>';
echo '<h3>' . $row['cta_row_title'] . '</h3>';
echo '<a href="'.$row['cta_row_url'].'" class="cover-link"><span class="hide">'.$row['cta_row_title'] . '</span></a>';
echo '</div>';
echo '</div>';
}
echo '</div>';
echo '</div>';
По существу, это то, что он делает:
- Инициирует гибкую компоновку
- Проверяет, соответствует ли содержимое гибкости в цикле идентификатору, указанному в ACF.
- Процессы полей гибкого содержимого, как если бы это был повторитель ACF.
Вы можете промывать и повторять по мере необходимости.
Очевидно, что вся структура находится на том репо, с которым я вас связал, я просто держу вас за руку, так как там не так много документации.