Содержание страницы не отображается в WordPress - PullRequest
1 голос
/ 11 февраля 2020

Мы сделали некоторые обновления на сайте, и с тех пор блоки контента не отображаются во внешнем интерфейсе. Это то, что называется:

<div class="page-content">
        <?php get_template_part('content-block-loop'); ?>
    </div>

И это то, к чему оно относится:

<?php
$post_objects = get_field('page_content_blocks');
if( $post_objects ):
    foreach( $post_objects as $post_object):
        $args = array('orderby' => 'menu_order', 'order' => 'ASC', 'fields' => 'all');
        $terms = wp_get_post_terms( $post_object->ID, 'content_block_cat', $args );
        if( get_field('disable_wpautop',$post_object->ID) ){
          remove_filter ('acf_the_content', 'wpautop');
        }
        include( locate_template( 'partials/content-blocks/'.$terms[0]->slug.".php" ) );
        add_filter ('acf_the_content', 'wpautop');
    endforeach; ?>
<?php endif; ?>

И в partials / content-blocks / custom-content-block. php is имеет следующий код:

<?php

$vertical_padding = "less-space";
$background_color = "white-bg";

if ( get_field('vertical_padding',$post_object->ID) ){
    $vertical_padding = get_field('vertical_padding',$post_object->ID);
}

if ( get_field('content_block_background_color',$post_object->ID) ){
    $background_color = get_field('content_block_background_color',$post_object->ID);
}

?>

<div class="panel <?php if( $vertical_padding != "none" ) { echo $vertical_padding; } ?> <?php echo $background_color; ?> relative-block">
    <div class="row">
        <div class="column small-12">
            <?php $custom_content_block_content = get_field('content',$post_object->ID);
            if( $custom_content_block_content ){
                the_field('content',$post_object->ID);
            } ?>
        </div>
    </div>
</div>

У нас также была похожая проблема с не показанными изображениями, и мы смогли изменить код PHP, чтобы он работал. Кажется, что то, что он называет (slugs et c), было выбито. Очень надеюсь, что есть исправление для контента, но я не вижу его. ТИА!

1 Ответ

0 голосов
/ 12 февраля 2020

Я думаю, вам нужно использовать the_content () для отображения содержимого публикации.

function the_content( $more_link_text = null, $strip_teaser = false ) {
$content = get_the_content( $more_link_text, $strip_teaser );

/**
 * Filters the post content.
 *
 * @since 0.71
 *
 * @param string $content Content of the current post.
 */
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]&gt;', $content );
echo $content;
}

Тег шаблона the_content () извлекает содержимое сообщения, фильтрует его и затем отображает. Это мясо и картофель каждого прохода через L oop.

Попробуйте сделать следующее:

<?php

$vertical_padding = "less-space";
$background_color = "white-bg";

if ( get_field('vertical_padding',$post_object->ID) ){
  $vertical_padding = get_field('vertical_padding',$post_object->ID);
}

if ( get_field('content_block_background_color',$post_object->ID) ){
  $background_color = get_field('content_block_background_color',$post_object->ID);
}

?>
<?php the_content(); ?>

<div class="panel <?php if( $vertical_padding != "none" ) { echo $vertical_padding; } ?> <?php echo $background_color; ?> relative-block">
<div class="row">
    <div class="column small-12">
        <?php $custom_content_block_content = get_field('content',$post_object->ID);
        if( $custom_content_block_content ){
            the_field('content',$post_object->ID);
        } ?>

    </div>
</div>
</div>

WordPress l oop не активен на ваших страницах и с помощью the_content () должен устранить все проблемы, с которыми вы столкнулись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...