WordPress как на ладони
Очень Удобный и Быстрый Хостинг для сайтов на WordPress. Пользуюсь сам и вам рекомендую!

ACF поля, правило для родительской рубрики

Как сделать правило в advanced custom fields чтобы при выборе дочерних категорий выводилась форма для заполнения полей

В ACF есть выбор конкретной категории но у меня эти категории (рубрики) постоянно добавляются.

У меня есть родительская категория "ОТЗЫВЫ" в нее входит и постоянно добавляются новые категории "отзывы о васе" "отзывы о пете" и т.д.

мне нужно чтобы когда я хочу добавить "отзывы о васе" выводились поля для заполнения из правила для родительской категории "ОТЗЫВЫ"

Это реально сделать или нет?

С Уважением Дмитрий

0
Гость
7.5 лет назад
  • 0
    campusboy4753 www.youtube.com/c/wpplus

    Скорее всего нет, у меня на быструю руку не получилось. Странно, что это он не может. Я бы на вашем месте тогда бы это прикрутил к формату записи, который поддерживает и ACF в том числе.

    Дмитрий 7.5 лет назад

    не совсем понял как связать формат записи и родительскую категорию ОТЗЫВЫ чтобы поля для заполнения выводились при обращении к дочерней категории ОТЗЫВЫ о васе?

    stepan 7.5 лет назад

    метабокс, который создается ACF, нужно привязывать к Формату записи
    http://screencloud.net/v/77ol
    Судя по запутанной структуре на сайте - это будет единств рабочим способом для показа метабокса для все Отзывов.

    Дмитрий 7.5 лет назад

    метабоксы должны показываться для дочерних категорий ОТЗЫВЫ для конкретного пользователя

    campusboy 7.5 лет назад

    Stepan верно подсказывает. Но, если знаете JS или хотя бы умеете пользоваться jQuery, то можно написать скриптик в несколько строк, который при клики на подпунтках Отзывов будет отображать блок ACF. Сам ACF так и работает ведь. Вам для этого надо в коде лишь посмотреть какие селекторы у нужного блока ACF, посмотреть селекторы у пункта "Отзывы" и мониторить нажатие подпунктов в нем.

    Комментировать
  • 0
    stepan2278 www.weblancer.net/users/stepanko/?affili...

    Как вариант еще: при добавлении отзыва можно отмечать в нем не только дочернюю категорию, но и родительскую "Отзывы". ТО есть, отзыв привязывается к 2 категориям. На функциональности это не сказывается. (может немного код подправить, все зависит от шаблона).
    Один минус: админу сайта при добавления отзыва нужно будет отмечать 2 категории, вместо одной.

    И ясное дело, что вывод блока ACF поставить для рубрики "Отзывы"

    Дмитрий 7.5 лет назад

    дело в том что дочерние категории постоянно добавляются как только регистрируется новый продавец поэтому вручную их добавлять каждый раз возможности нет, ник продавца это дочерняя категория от родительской категории ОТЗЫВЫ и отзывы должны выводится о конкретном продавце по обращению в его ник категорию отзывов, а в acf если в правилах указать отображение полей для родительской категории ОТЗЫВЫ то они только там и отображаются, а если выбрать дочернюю категорию тобишь ОТЗЫВЫ о конкретном продавце, то поля уже не подтягиваются для заполнения

    stepan 7.5 лет назад

    Еще главный вопрос: Вы показываете поля ACF для ЗАПИСИ или для Рубрики ?
    Если для рубрики - то в плагине точно нет решений.

    Если для рубрики: тогда с помощью CSS скрывать поля там где это нужно.
    То есть: показ полей выбираете для всех таксономий, в которой Отзывы, и потом фильтруете: если это дочерняя категории "Отзывов" - то ничего не делать, иначе

    display: none;
    Дмитрий 7.5 лет назад

    метабоксы нужно показывать для дочерней рубрики

    stepan 7.5 лет назад

    ЛОгику решения написал выше.

    Дмитрий 7.5 лет назад

    хорошо, допустим у нас выводятся поля метабоксы к родительской категории ОТЗЫВЫ, а как же их связать с дочерней категорией с отзывами о конкретном пользователе?

    Дмитрий 7.5 лет назад

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

    Дмитрий 7.5 лет назад

    или допустим как связать метабоксы с постами со статусом "Продано" sold - это товары которые были проданы конкретным продавцом

    Дмитрий 7.5 лет назад

    например при вводе /wordpress/wp-admin/post-new.php?post_cat=otzyvy&post_status=sold , метабоксы не отображаются хотя в правилах был укзан статус записи "Продано"

    stepan 7.5 лет назад

    Я не понимаю структуру вашего сайта.
    Помочь не смогу - нужно только видеть админку, код наживо.

    /wordpress/wp-admin/post-new.php?post_cat=otzyvy&post_status=sold

    Вы же писали, что метабоксы ДПОЛЖНЫ показываться в РУБРИКАХ, а в примере навели ссылку на запись.

    Дмитрий 7.5 лет назад

    поскольку в рубриках не получается подвязать метабоксы , появились мысли подвязать отзывы под конкретные записи проданных товаров

    Комментировать
  • 1

    Решил ответить в этой старой теме, так как похожих тем не нашёл даже на других сайтах.
    Вывод метабоксов ACF в дочерных рубриках можно сделать чуть изменив код функции описанной здесь

        // Отображение ACF поля в нужном экране админки
    	add_filter( 'acf/location/rule_match/category_id', 'asp_location_rules_match_category_id', 10, 3);
    	function asp_location_rules_match_category_id($match, $rule, $options) {
    		$screen = get_current_screen();
    
    		// ID текущей категории
    		$term_id = $_GET[ 'tag_ID' ];
    		// проверяем принадлежность категории к дочерной категории
    		$parent_cat = get_term_children( (int)$rule['value'], 'category' );
    		if ( array_search( $term_id, $parent_cat ) !== false )
    			$child_cat = true;
    		else $child_cat = false;
    
    		// если объект не "term" или $screen ID не равно 'edit-category' или не принадлежит дочерной категории установленного правила - то выходим
    		if ( $screen->base !== 'term' || $screen->id !== 'edit-category' || !$child_cat )
    			return $match;
    
    		// изменяем вывод метабокса - не в рубрике с установленным правилом, а в её дочерних рубриках
    		$select_term = $term_id;
    		//$select_term = $rule[ 'value' ];
    
    		if ( $rule[ 'operator' ] === '==')
    			$match = ( $term_id == $select_term );
    		elseif ($rule[ 'operator' ] === '!=')
    			$match = ( $term_id != $select_term );
    
    		return $match;
    	}

    В таком случае вывод метабоксов НЕ будет осуществляться в рубрике с указанными правилами ACF, а только в её подрубриках.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация