WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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

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

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

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

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

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

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

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

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

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

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

    stepan 5 лет назад

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

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

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

    campusboy 5 лет назад

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

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

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

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

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

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

    stepan 5 лет назад

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

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

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

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

    stepan 5 лет назад

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

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

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

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

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

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

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

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

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

    stepan 5 лет назад

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

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

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

    Дмитрий 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, а только в её подрубриках.

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