L
L
Legal Adviser2019-04-03 23:50:01
Taxonomy
Legal Adviser, 2019-04-03 23:50:01

How to make a custom post and its taxonomy work together?

Hello,
Please help me figure it out ...
Question 1:
There are custom taxonomies and a custom post.
I create a custom category (term) and add the created custom posts there (see Fig. 1)

rice. one
5ca519f69488e550932982.jpeg

But when I fail to see all the posts in this section, for some reason it is empty there (see Fig. 2)
rice. 2
5ca517ffb2f77376259521.jpeg

At the same time, if I select "all services" in the menu, I see all custom posts from the "Services heading" (see Fig. 3)
rice. 3
5ca51942ec674237538087.jpeg
Please tell me what to do...
The code is like this:
<?php

/* Юридические услуги (Н)
 * ********************************* */
add_action( 'init', 'true_register_uslugi' ); // Использовать функцию только внутри хука init

function true_register_uslugi() {
  $labels = array(
    'name' => 'Юридические услуги',
    'singular_name' => 'Юр. услуги', // админ панель Добавить->Функцию
    'add_new' => 'Добавить услугу',
    'add_new_item' => 'Добавить новую услугу', // заголовок тега <title>
    'edit_item' => 'Редактировать услугу',
    'new_item' => 'Новая услуга',
    'all_items' => 'Все услуги',
    'view_item' => 'Просмотр услуг на сайте',
    'search_items' => 'Искать услуги',
    'not_found' =>  'Услуги не найдены.',
    'not_found_in_trash' => 'В корзине нет услуг.',
    'menu_name' => 'Юр. услуги' // ссылка в меню в админке
  );
  $args = array(
    'labels' => $labels,
    'public' => true,
    'menu_icon' => 'dashicons-welcome-learn-more', //картинки из файла dashicons.css Описание тут: https://developer.wordpress.org/resource/dashicons/#image-rotate-right
    'menu_position' => 5,
    'has_archive' => true,
    'description' => __( 'Description.', 'your-plugin-textdomain' ), // (строка) краткий описательный обзор того, что пост типа.
    'publicly_queryable' => true,
    'show_ui' => true, // нужно ли создавать и разрешить пользовательский интерфейс для управления Этот тип записи в админке. Значение по умолчанию - $public.
    'show_in_menu' => true, // где показывают типа пост в админ меню. Для работы $show_ui должен иметь значение true. Если true, Тип сообщения отображается в собственном меню верхнего уровня. Если false, меню не отображается. Если строка существующего меню верхнего уровня (например. 'tools.php ' или ' edit.php?post_type=page'), Тип сообщения будет помещен в качестве подменю этого. Значение по умолчанию - $show_ui.
    'query_var' => true, //  устанавливает query_var ключ для данного типа пост. По умолчанию ключ $post_type. Если false, Тип сообщения не может быть загружен в ?{query_var} = {post_slug}. Если задан как строка, то запрос ?{query_var_string} = {post_slug} будет действительным.
    'rewrite' => array( 'slug' => 'uslugi' ),
    'capability_type' => 'post', // массив из функции для этого типа. $capability_type используется в качестве основы для создания возможностей по умолчанию. Увидеть get_post_type_capabilities().
    'hierarchical' => true, // (типа bool) будет ли пост тип иерархической (например, страницы). По умолчанию false.
    'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ) // основная функция(ы) тип записи поддерживает.
        // Служит в качестве псевдонима для вызова add_post_type_support() напрямую.
        // Основные функции включают "Заголовок", "редактор", "комментарии", "редакции", "trackbacks", "Автор", "выдержка", "страница-атрибуты",
        // "миниатюра", "пользовательские поля" и "пост-форматы".
        // Кроме того, функция' revisions 'определяет, будет ли Тип записи хранить ревизии, а функция' comments ' определяет,
        // будет ли Количество комментариев отображаться на экране редактирования.
        // Defaults-массив, содержащий 'title' и 'editor'.
  );
  register_post_type('uslugi',$args);
}
add_filter( 'manage_uslugi_posts_columns', function ( $columns ) {
    $my_columns = [
        'id' => 'ID',
        //'image' => 'Миниатюра',
        ];
    return array_slice($columns, 0, 1) + $my_columns + $columns;
} );
add_filter( 'manage_uslugi_posts_custom_column', function ( $column_name, $post_id ) {
if ( $column_name === 'id' ){
    echo $post_id;
}
    return $column_name;
}, 10, 2);

add_action('init', 'create_uslugi_taxonomy');
function create_uslugi_taxonomy(){
  register_taxonomy('uslugi', array('uslugi'), array(
    'label'                 => '', // определяется параметром $labels->name
    'labels'                => array(
      'name'              => 'Рубрики услуг',
      'singular_name'     => 'Вы тут', // Отображает фразу до наименования. К примеру: "Это рубрика:  | наименование рубрики | "
      'search_items'      => 'Найти рубрики',
      'all_items'         => 'Все рубрики',
      'view_item '        => 'Просмотр рубрики',
      'parent_item'       => 'Родительская рубрика',
      'parent_item_colon' => 'Parent Genre:',
      'edit_item'         => 'Изменить рубрику',
      'update_item'       => 'Обновить рубрику',
      'add_new_item'      => 'Добавить новую рубрику',
      'new_item_name'     => 'New Genre Name',
      'menu_name'         => 'Рубрики услуг',
    ),
    'description'           => 'юридические услуги', // описание таксономии
    'public'                => true,
    'publicly_queryable'    => null, // равен аргументу public
    'show_in_nav_menus'     => true, // равен аргументу public
    'show_ui'               => true, // равен аргументу public
    'show_in_menu'          => true, // равен аргументу show_ui
    'show_tagcloud'         => true, // равен аргументу show_ui
    'show_in_rest'          => null, // добавить в REST API
    'rest_base'             => null, // $taxonomy
    'hierarchical'          => true, //false,
    'update_count_callback' => '',
    'rewrite'               => true,
    //'query_var'             => $taxonomy, // название параметра запроса
    'capabilities'          => array(),
    'meta_box_cb'           => null, // callback функция. Отвечает за html код метабокса (с версии 3.8): post_categories_meta_box или post_tags_meta_box. Если указать false, то метабокс будет отключен вообще
    'show_admin_column'     => true, // Позволить или нет авто-создание колонки таксономии в таблице ассоциированного типа записи. (с версии 3.5)
    '_builtin'              => false,
    'show_in_quick_edit'    => null, // по умолчанию значение show_ui
  ) );
}

Question 2:
And yet, I don’t understand why the description of custom posts is not displayed in the column (there is always a dash), although in fact, the description is and is displayed (if you look at the page code of a particular post)
Thank you in advance.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
L
Legal Adviser, 2019-04-11
@Legal2019

I did it a little differently and it became as it should, just changed the following:

function create_uslugi_taxonomy(){
  register_taxonomy('uslugi', array('uslugi'), array(

on the
function create_uslugi_taxonomy(){
  register_taxonomy('usluga', array('uslugi'), array(

and changed in the taxonomy registration code:
from to However, when going to the address: it gives error 404 ... (((( How to deal with such an error ??? 'rewrite' => true,

C
Crash XD, 2019-04-04
@crashxd

On the first question: the problem is that the taxonomy and posttype names are the same.
Change one of them and everything will work)
For example:

register_post_type('service',$args); // посттайп
register_taxonomy('section', array('service'), $args); // таксономия

And on the second question, I don’t understand, where do you see the “description” column for posttypes?
Screen
fd7183aa70.jpg
This column is the comments to the post.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question