Доброго времени суток.
Требуется помощ.
Созданы кастомные тип записи:
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.
тут я что-то собирал для кастомизации публикаций. Посмотрите