@Tipello

Вывод дочерних страниц 1го уровня с миниатюрами — что не так?

Всем привет! На просторах интернета откопал статью о том, как вывести дочерние страницы с миниатюрами. По словам автора все корректно работает, но что то у меня не получается. Пробовал на трех разных сайтах, везде выдает error 500. Знаний в программировании нет, хелп кто может. Выглядит все следующим образом:
function my_function() {
     
global $post;
$child_pages_query_args = array(
    'post_type'   => 'page',
    'post_parent' => $post->ID,
    'orderby'     => 'date DESC'
);
 
$child_pages = new WP_Query( $child_pages_query_args );
 
if ( $child_pages->have_posts() ) :
?>
<ul class="child_page_row">
<?php 
while ( $child_pages->have_posts() ) : $child_pages->the_post();
    ?>
    <li><a href="<?php the_permalink(); ?>">
    <?php if(has_post_thumbnail()): ?>
        <div class="child_page_thumb">
            <?php the_post_thumbnail(array(240, 240)); ?>
        </div>
    <?php endif; ?>
        <div class="child_page_name">
            <?php the_title(); ?>
        </div>
        <?php if(has_post_custom_meta('Desc')) : ?>
            <div class="child_page_desc">
                <?php echo get_post_meta($post->ID, 'Desc', true); ?>
            </div>
        <?php endif; ?>
        <div class="child_page_author">
            <a href="<?php echo get_author_posts_url( get_the_author_meta( 'ID' ) ); ?>">@ <?php the_author(); ?></a>
        </div>
    </a></li>
<?php
endwhile; 
?>
</ul>
<?php    
endif;
 
wp_reset_postdata();
}


Далее добавляем шорткод
add_shortcode('show_child_pages', 'my_function');
Вставляя уже шорткод в шаблон выдает ошибку 500.
Помогите разобраться!!!
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
@MrTimon
Я думаю проблема в том что у ВП нету ф-ции has_post_custom_meta, насколько я знаю. А 500 ошибку вам выдает потому что сервер так настроен скорее всего. Предлагаю этот кусок кода
<?php if(has_post_custom_meta('Desc')) : ?>
            <div class="child_page_desc">
                <?php echo get_post_meta($post->ID, 'Desc', true); ?>
            </div>
<?php endif; ?>


заменить на следующий

<?php $desc = get_post_meta(get_the_ID(), 'Desc', true); ?>
<?php if(!empty($desc)) : ?>
            <div class="child_page_desc">
                <?php echo $desc;?>
            </div>
<?php endif; ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
для начала has_post_custom_meta нет такой функции но это как правило не 500
и 'orderby' => 'date DESC' тоже фигня
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы