Доброго времени суток.
Требуется помощ.
Созданы кастомные тип записи:
add_action('init', 'amconsoft_custom_init'); function amconsoft_custom_init() { $labels = array( 'name' => _x( 'Магазины', 'Post Type General Name', 'amconsoft' ), 'singular_name' => _x( 'Магазин', 'Post Type Singular Name', 'amconsoft' ), 'add_new' => __( 'Добавить новый', 'amconsoft' ), 'add_new_item' => __( 'Добавить новый магазин', 'amconsoft' ), 'new_item' => __( 'Новый магазин', 'amconsoft' ), 'view_item' => __( 'Посмотреть магазин', 'amconsoft' ), 'search_items' => __( 'Найти магазин', 'amconsoft' ), 'not_found' => __( 'Магазин не найден', 'amconsoft' ), 'not_found_in_trash' => __( 'В корзине магазин не найден', 'amconsoft' ), 'parent_item_colon' => '', 'menu_name' => __( 'Магазины', 'amconsoft' ), 'all_items' => __( 'Все магазины', 'amconsoft' ), 'edit_item' => __( 'Редактировать магазин', 'amconsoft' ), 'update_item' => __( 'Обновить магазин', 'amconsoft' ) ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => 69, 'supports' => array('title','editor','author','thumbnail','excerpt'), 'taxonomies' => array('shop_cat', 'shop_tag'), 'menu_icon' => 'dashicons-cart', ); register_post_type( 'shop', $args ); }
и кастомная таксономия:
add_action('init', 'amconsoft_shop_taxonomies', 0 ); function amconsoft_shop_taxonomies(){ // Adding taxonomy tree-type 'shop_cat' (category) $labels = array( 'name' => _x( 'Категории', 'taxonomy general name', 'amconsoft' ), 'singular_name' => _x( 'Категория', 'taxonomy singular name', 'amconsoft' ), 'search_items' => __( 'Найти категорию', 'amconsoft' ), 'popular_items' => null, 'all_items' => __( 'Все категории', 'amconsoft' ), 'parent_item' => __( 'Родительская категория', 'amconsoft' ), 'parent_item_colon' => __( 'Родительская категория:', 'amconsoft' ), 'edit_item' => __( 'Изменить категорию', 'amconsoft' ), 'update_item' => __( 'Обновить категорию', 'amconsoft' ), 'add_new_item' => __( 'Добавить новую категорию', 'amconsoft' ), 'new_item_name' => __( 'Название новой категории', 'amconsoft' ) ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'query_var' => true, 'rewrite' => array( 'slug' => 'shop-category' ) ); register_taxonomy( 'shop_cat', array( 'shop' ), $args ); // Adding taxonomy non tree-type 'shop_tag' (tags) $labels = array( 'name' => _x( 'Теги', 'taxonomy general name', 'amconsoft' ), 'singular_name' => _x( 'Тег', 'taxonomy singular name', 'amconsoft' ), 'search_items' => __( 'Найти тег', 'amconsoft' ), 'popular_items' => __( 'Популярные теги', 'amconsoft' ), 'all_items' => __( 'Все теги', 'amconsoft' ), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __( 'Изменить тег', 'amconsoft' ), 'update_item' => __( 'Обновить тег', 'amconsoft' ), 'add_new_item' => __( 'Добавить новую тег', 'amconsoft' ), 'new_item_name' => __( 'Имя нового тега', 'amconsoft' ), 'separate_items_with_commas' => __( 'Разделите теги запятыми', 'amconsoft' ), 'add_or_remove_items' => __( 'Добавить или удалить тег', 'amconsoft' ), 'choose_from_most_used' => __( 'Выбрать часто используемые теги', 'amconsoft' ) ); $args = array( 'hierarchical' => false, 'labels' => $labels, 'rewrite' => array( 'slug' => 'shop_tag' ) ); register_taxonomy( 'shop_tag', 'shop', $args ); }
Форма публикации:
В function.php пробовал и с фильтром и без:
add_filter( 'taxonomy_public_form_rcl', 'add_taxonomy_publicform' ); function add_taxonomy_publicform( $tax ){ if ( !$tax['shop'] ) $tax['shop'] = 'shop_cat'; return $tax; }
Но!
Сама форма не видит кастомной таксономии:
И, естественно, посты размещаются без каких либо рубрик:
В общем вопрос стандартный - где я накосячил? 😳
попробуйте просто произвести инициализацию типа записи и таксономии, затем перейдите в админку и создайте несколько терминов для таксономий.
После этого, в форме публикации все должно выводится, проверил сам.
Добавленную функцию add_taxonomy_publicform() удалите, она не нужна.
Суть в том, что и записи и таксономии работаю корректно. В админке создаются и то и другое.
Тип записи:
Таксономия:
P.S. Удалил и тип записи и таксономию и инициализировал заново. Результат без изменений. 🙁
Я тоже подключился к тесту.
Вставил в файл функций темы ваши 2 фрагмента кода
Ради чистоты эксперимента у wp-recall оставил только аддон публикаций активным.
Зашел прописал метки и категории в новый раздел.
Вставил шорткод публикации
Проблем не вижу.
Вы эти 2 функции где подключаете? Может поиграться с аргументом очереди ?
add_action('init', 'amconsoft_shop_taxonomies', 0 );
- 0 у меня работает, но может 10 или 20 поставить вам надо?
upd: я не вписывал 3й код фильтра
Спасибо, Отшельник, что включился в тестинг.
Вот и я только что развернул чистый WP v.4.6
Тема базовая: Twenty Sixteen
Код (из первого поста) добавлен в конец function.php темы.
Плагины: WP-Recall
Из адонов активирован: Public Wp-Recall (Публикация)
И...
...без результата.
Выложу скрины с настройками. Может кто увидит ошибки:
Настройки WP-Recall:
Андрей CS сказал(а)
почему вы показываете размещение шорткода формы публикации внутри страницы, а ее вывод производится внутри ЛК?
Я в принципе все делал, как написано в статье.
Ребята, у меня уже мозг взрывается. 🙂
Тыкните пальцем, что я делаю не так.
1. В настройках плагина, в закладке "настройки публикации" в списке "Страница публикации и редактирования" выбираем страницу "Форма публикации". Так?
2. На самой странице "Форма публикации" указываем шорткод: [ public-form post_type="shop" ]. Так?
P.S. Добавил только что шорткод [ public-form post_type="shop" ] на страницу "Личный кабинет". Кастомный тип вывелся:
...и так в каждой закладке 🙂
Андрей CS сказал(а)
почему вы ожидаете вывод этой формы в личном кабинете?
Я вас вообще не понимаю... А где юзер должен тогда создавать записи? На произвольной странице вне кабинета? Это как-то не очень логично звучит. Тем более что такой функционал вами реализован - в стандартные рубрики то записи добавляются корректно.
Возможно мы не поняли друг друга. Давайте я опишу задачу, которую я пытаюсь решить с помощью вашего плагина.
Есть 2-е группы авторизированых юзеров - клиент / магазин.
Магазины имеют право публиковать, после модерации, записи.
Эти записи должны размещатся в кастомном типе и в кастомной таксономии.
Все - ничего военного.
Плагин чудесно сейчас с этим справляется, но только с базовыми записями и рубриками. 🙁
Чего я достиг "насейчас":
1. Если разместить [ public-form post_type="shop" ] на произвольной вкладке, то необходимый результат получаем. Но проблема в том, что требуется мультивыбор категорий, а в таком варианте select выводится только один и у формы отсутствуют произвольные поля.
2. Если разместить [ public-form post_type="shop" ] на странице "Личный кабинет", рядом с [ wp-recall ] - форма выводится корректно, но на всех закладках личного кабинета.
а где вас убедили, что разместив шорткод формы публикации для кастомного типа записи на произвольной странице вы получите эту форму в личном кабинете? что то тут с логикой не вяжется.
В личном кабинете по-умолчанию выводится форма публикации в записи стандартного типа и никакого выбора для смены типа записи не предоставляется.
Если желаете разместить форму публикации для кастомного типа записи в ЛК, то следует использовать произвольные вкладки ЛК, создать такую вкладку и разместить там нужный шорткод не так сложно как кажется.
Андрей CS сказал(а)
что не поддерживается?
Rob Roy сказал(а)
1. Если разместить [ public-form post_type="shop" ] на произвольной вкладке, то необходимый результат получаем. Но проблема в том, что требуется мультивыбор категорий, а в таком варианте select выводится только один и у формы отсутствуют произвольные поля.
Настройка в админке во вкладке "Настройки публикаций" - она для типа записей post. И селекты там же и категории к выбору. Для кастомных типов надо делать самостоятельно. ссылку на произвольные поля выше я дал
upd.
тут я что-то собирал для кастомизации публикаций. Посмотрите