Поддержка Проблемы и решения вывод произвольных полей подстраниц на родительской странице

  • Подскажите пожалуйста как вывести данные из произвольных полей дочерних страниц на их родительской странице.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Yuri

    (@yube)

    Получить список дочерних функцией get_pages(), используя параметр child_of или parent, и в цикле из каждой вынуть нужные метаданные.

    Это конечно же хорошо, но не получается у меня, вот и прошу помощи.
    Код сейчас такой:

    <div class="main border">
    <section id="gibdd-wrapper">
        <div id="gibdd-wrapper-header">
            <div class="gibdd-wrapper-header">
                <header>
                    <h1><a href="<?php the_permalink(358); ?>"><?php echo get_the_title(358); ?></a></h1>
                </header><!--. Header -->
                <div class="gibdd-logo-wrapper">
                    <div class="gibdd-logo" style="/*width: 150px;*/">
                        <img src="<?php echo get_template_directory_uri();?>/image/gibdd/gibdd.png" alt="">
                    </div><!--. Header logo img -->
                    <div class="gibdd-logo-name">
                        <ul>
                            <li>Госавтоинспекция</li>
                            <li>г. Москва</li>
                        </ul>
                    </div><!--. Header logo name -->
                </div><!--. Header logo img + name -->
            </div><!--. gibdd-wrapper-header -->
                    <div class="gibdd-preview">
                        <div class="gibdd-preview">
                            <ul>
    
            <?php
    $mypages = get_pages( array(
        'child_of'      => $post->ID,
        'sort_order'    => 'ASC',
        //'meta_key'      => '',
        //'meta_value '   => '',
        ) );
    foreach( $mypages as $page ) {      
    	//  $content = $page->post_content; //  публикация контента всей страницы
            $content = $page->post_excerpt;     //  публикация отрывка (цитата) страницы
    	// пропустим страницу без контента
    	//if ( ! $content ) continue; // если $content = $page->post_excerpt; не содержит отрывка, то такую запись пропустит и она не будет выведена
    	$content = apply_filters( 'the_content', $content );
    	?>
    	                            <li class="gp-link">
                                <h2><a href="<?php echo get_page_link( $page->ID ); ?>"><?php echo $page->post_title; ?></a></h2>
                        <div class="gibdd-adress">
                            <?php echo $content; ?>
                        </div><!--. gibdd-adress -->
                        <div>
                    <div style="min-height: 20px; background-color: green;">
                        <?php get_post_meta(); // ни как не понимаю что тут и как нужно прописать ?>
                    </div>
                </div><!--. gp-link-tag -->
    	<?php
    };?>
            </li><!--. gp-link -->
                    </ul>
            </div><!--. gibdd-preview-wrapper -->
        </div><!--. gibdd-wrapper-header -->
    </section><!--. gibdd-wrapper -->
    Модератор Yuri

    (@yube)

    <?php get_post_meta(); // ни как не понимаю что тут и как нужно прописать ?>

    <?php echo get_post_meta($page->ID, 'имя_поля', true); ?>
    

    Матчасть https://developer.wordpress.org/reference/functions/get_post_meta/

    <?php echo get_post_meta($page->ID, 'имя_поля', true); ?> Пробовал разные варианты включая этот, но он не цепляет произвольные поля подстраниц…
    При вышеуказанной конструкции он выводит номер ID родительской страницы, т.е. той страницы на которой в текущий момент, а произвольные поля именно подстраниц не выводит.
    Мл…ять я уже голову сломал и ни как не могу понять что и как сделать.

    есть и ещё одна проблемка, так сказать вылезла сама по себе )))
    В части:

    foreach( $mypages as $page ) {      
    	//  $content = $page->post_content; //  публикация контента всей страницы
            $content = $page->post_excerpt;     //  публикация отрывка (цитата) страницы
    	// пропустим страницу без контента
    	//if ( ! $content ) continue; // если $content = $page->post_excerpt; не содержит отрывка, то такую запись пропустит и она не будет выведена
    	$content = apply_filters( 'the_content', $content );

    При: $content = $page->post_excerpt; — будет вывод именно тех данных, что были заполнены в ручную в «отрывок (цитата) страницы».
    При: $content = $page->post_content; — выводит весь контент страницы.
    И пока не могу понять почему не выводит куском текста по умолчанию…

    Согласно

    Матчасть https://developer.wordpress.org/reference/functions/get_post_meta/

    я так понимаю, что $post_id — обязательное условие, которое нужно указать.
    Это всё прекрасно, но не могу понять как сделать так, чтобы не указывать конкретно $post_id, т.к. за ранее я его не знаю.
    Как написать код, чтобы он отвечал своей цели?
    Цель такая:
    1) сделать родительскую страницу;
    2) сделать дочернюю страницу (скажем штук 20);
    3) прописать два-три мета ключа в произвольном поле, которые будут по необходимости вводиться на дочерних страницах;
    4) два-три мета ключа в произвольном поле должны высвечиваться в виде ссылок под каждой дочерней странице на родительской странице с целью возможности вывода отсортированных дочерних страниц по конкретному мета ключу.

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «вывод произвольных полей подстраниц на родительской странице» закрыта для новых ответов.