Ответы в темах

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • WP_Query($args) насколько я помню работает с постами.

    Тут ситуация немного другая. Есть пост, в нем поле ACF foto.
    В поле foto вложенный повторитель в котором 2 поля link — ссылка на фото и описание.

    Задача вытянуть не все вложенные в повторитель поля, а только 3.

    Я понимаю, что можно создать 2 массива и перетянуть в них, а позже вывести нужное количество циклом, но может есть способ проще?

    <?php 
    $a = array(); 
    $i = 0; 
    while( have_rows('foto')): the_row(); 
    $a[$i] = get_sub_field('link');
    $i++; 
    endwhile; 
    ?>
    • Ответ изменён 4 года, 2 месяца назад пользователем tupoi.
    • Ответ изменён 4 года, 2 месяца назад пользователем tupoi.
    • Ответ изменён 4 года, 2 месяца назад пользователем tupoi.

    Если я правильно понял суть вопроса, то задача в том, что бы проверить произвольное поле на наличие значения.
    Проверяем поле на заполненность:

    if (get_field('имя_поля')) { }  - если заполнено
    else { }  - если НЕ заполнено
    • Ответ изменён 4 года, 6 месяцев назад пользователем tupoi.

    Не работает только шаблон, сами записи открываются корректно?

    Только вывод в шаблон. Сами записи открываются корректно на backend`e.

    После создания типов пересохраняли настройки постоянных ссылок?

    нет

    Извиняюсь за длинный код, но в functions это выглядит так:

    add_action( 'init', 'true_register_post_type_init' ); 
    function true_register_post_type_init() {
    	$labels = array(
    		'name' => 'Цели конференции',
    		'singular_name' => 'Цели конференции', 
    		'add_new' => 'Добавить блок цели',
    		'add_new_item' => 'Добавить новый блок', 
    		'edit_item' => 'Редактировать цели',
    		'new_item' => 'Новый блок',
    		'all_items' => 'Все блоки',
    		'view_item' => 'Просмотр на сайте',
    		'search_items' => 'Искать',
    		'not_found' =>  'Цели не выбраны',
    		'not_found_in_trash' => 'Блок не выбран',
    		'menu_name' => 'Цели' 
    	);
    	$args = array(
    		'labels' => $labels,
    		'public' => true,
    		'show_ui' => true, 
    		'has_archive' => true,
    		'show_in_rest' => true,
    		'capability_type' => 'post',
    		'taxonomies' => array( 'genres' ),
            'hierarchical' => false,
            'public' => true,
            'show_ui' => true,
            'show_in_menu' => true,
            'show_in_nav_menus' => true,
            'show_in_admin_bar' => true,
            'can_export' => true,
            'has_archive' => true,
            'exclude_from_search' => false,
            'publicly_queryable' => true,
    		'menu_position' => 5, 
    		'supports' => array( 'title', 'thumbnail', 'editor')
    	);
    	register_post_type('priem', $args);
    }
    
    add_action( 'init', 'true_register_post_type_init_2' );
    function true_register_post_type_init_2() {
    	$labels = array(
    		'name' => 'Спикеры',
    		'singular_name' => 'Спикеры', 
    		'add_new' => 'Добавить блок спикеры',
    		'add_new_item' => 'Добавить новый блок',
    		'edit_item' => 'Редактировать спикеров',
    		'new_item' => 'Новый блок',
    		'all_items' => 'Все блоки',
    		'view_item' => 'Просмотр на сайте',
    		'search_items' => 'Искать',
    		'not_found' =>  'Цели не выбраны',
    		'not_found_in_trash' => 'Блок не выбран',
    		'menu_name' => 'Спикеры' 
    	);
    	$args = array(
    		'labels' => $labels,
    		'public' => true,
    		'show_ui' => true, 
    		'has_archive' => true,
    		'show_in_rest' => true,
    		'capability_type' => 'post',
    		'taxonomies' => array( 'genres' ),
            'hierarchical' => false,
            'public' => true,
            'show_ui' => true,
            'show_in_menu' => true,
            'show_in_nav_menus' => true,
            'show_in_admin_bar' => true,
            'can_export' => true,
            'has_archive' => true,
            'exclude_from_search' => false,
            'publicly_queryable' => true,
    		'menu_position' => 6, 
    		'supports' => array( 'title', 'thumbnail')
    	);
    	register_post_type('speakers', $args);
    }

    вариант page-name.php и single-name.php где name — имя своего типа записей, не прокатил…

    single-name.php должен был прокатить.

    не прокатывает, в том то всё и дело

    • Ответ изменён 4 года, 7 месяцев назад пользователем tupoi.
Просмотр 5 ответов — с 1 по 5 (всего 5)