Создание персонализированной публикации в WordPress (Пользовательские типы записей)

{title}

Много раз, как разработчикам, нам нужно организованно создавать настраиваемый контент или некоторые функции и регистрировать значения и собственные поля, которых Wordpress не имеет по умолчанию, также важно, чтобы их можно было использовать повторно.Я ищу в каталоге шаблонов файл functions.php, например здесь, в шаблоне Twenty ten.

Внутри файла мы ищем, если функция add_theme_support ('миниатюры записей') Существует тот, который позволяет использовать миниатюрные изображения, если он не добавлен, и я также добавлю переменную для определенного размера.

В этом случае шаблон уже поддерживает миниатюрные изображения, поэтому я добавляю только свой нестандартный размер.Это означает, что когда вы назначаете миниатюру изображению, оно автоматически будет иметь размер 80 пикселей в ширину и 80 пикселей в высоту.Начинаем создавать функционал, лучше код разделить, можно было бы поставить в конец файла функции, но для более упорядоченной работы поместим его в каталог Составные частигде мы создадим файл под названием real estate.php, так что у нас есть отдельный компонент.

  _x ('Real estate', 'post type general name'), 'singular_name' => _x ('Properties', 'post type singular name'), 'add_new' => _x ('New real estate', 'real estate'), 'add_new_item' => __ ('New Imueble'), 'edit_item' => __ ('Edit property'), 'new_item' => __ ('New property'), 'view_item' => __ ('See property'), 'search_items' => __ ('Search for property'), 'not_found' => __ ('No properties found'), 'not_found_in_trash' => __ ('No real estate'), 'parent_item_colon' => '' ); // I create the arguments for the database $ real estate_args = array ( 'labels' => $ real estate_labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'rewrite' => true, 'hierarchical' => false, 'menu_position' => null, 'capability_type' => 'post', 'supports' => array ('title', 'excerpt', 'editor', 'thumbnail'), 'menu_icon' => get_bloginfo ('template_directory'). '/images/photo-album.webp' // 16x16 png if you want an icon ); // Register the post register_post_type ('real estate', $ real estate_args); ?> 
Затем мы включаем его в файл functions.php в конце или в раздел для компонентов, в данном случае мы помещаем его вместе с другими конфигурациями.

Мы собираемся ввести нашего администратора wordpress, в случае, если он активен, мы должны обновить или закрыть сеанс и повторно войти, чтобы обновить изменения, внесенные в файл functions.php, который вызывает компонент.Как мы видим, мне было добавлено новое свойство для управления нашими собственными данными для этого персонализированного компонента публикации.

Мы также создадим несколько категорий или таксономий, чтобы наше приложение было более полным. Например, тип собственности: дом, этаж и т. Д. И другой для провинций. Для этого в файл недвижимости ниже мы добавим следующий код, каждый блок является категорией, и мы можем создавать те, которые нам нужны.

  true, 'label' => 'Types of property', 'singular_label' => 'Type', 'rewrite' => true ) ); } ?>  true, 'label' => 'Provinces', 'singular_label' => 'province', 'rewrite' => true ) ); } ?> 
. Затем при обновлении нашего администратора WordPress мы можем увидеть обе категории в меню недвижимости.

Перечисление наших собственных данныхЗаписи и страница wordpress в администраторе всегда имеют одинаковые заголовок данных, автора и дату, в этом случае нам нужно перечислить данные компонента недвижимости. Для этого настроим столбцы списка.

 <? php // Настроить столбцы // ------------------------------------------- --- // активируем действие настройки столбцов // для компонента недвижимости add_action ('manage_posts_custom_column', 'customize_columns'); add_filter ('manage_edit-inmobiliaria_columns', 'inmobiliaria_columnas'); // Я определяю, какие столбцы будут отображаться в списке function real estate_columns ($ columns) {$ columns = array ('cb' => '',' title '=>' Название ',' photo '=>' Фотография ',' type '=>' Тип собственности ',' Province '=>' Провинция ',' date '=>' Дата ',) ; вернуть $ columns; }?> 
После указания заголовков и типов столбцов, которые будут отображаться, мы приступаем к назначению данных из запросов, которые мы будем делать в базе данных, и назначать данные каждому столбцу, в этом случае мы ищем категории с помощью функции wordpress get_the_term_list () .
  ID, 'type', '', ',', ''); break; case 'province': echo get_the_term_list ($ post-> ID, 'province', '', ',', ''); break; } } // add thumbnail images to column add_filter ('manage_posts_columns', 'showfoto', 5); add_filter ('manage_pages_columns', 'showfoto', 5); add_filter ('manage_custom_post_columns', 'showphoto', 5); // Add the column function showfoto ($ cols) { $ cols ['photo'] = __ ('Thumbnail'); return $ cols; } ?> 
Для случая с изображением мы создаем функцию для поиска фотографии и добавления ее в custom_post_columns если мы хотим, мы также можем добавить его для поддержки сообщений и страниц, помимо нашего компонента, но мы удалим эти строки.<? // добавляем миниатюры изображений в столбецadd_filter ('manage_posts_columns', 'showfoto', 5);add_filter ('manage_pages_columns', 'showfoto', 5);add_filter ('manage_custom_post_columns', 'showphoto', 5);// Добавляем столбецfunction showfoto ($ cols) {$ cols ['фото'] = __ ('Миниатюра');вернуть $ cols;}?>Мы сохраняем файл inmobiliaria.php, в котором мы внесли эти изменения, и обновляем страницу администратора WordPress. Мы протестируем наше приложение, зарегистрировав недвижимость, для этого предварительно дадим категории типов собственности: Дом, Квартира, Земля и т. Д.Затем мы зарегистрируем некоторые провинции Барселона, Мадрид и т. Д. Затем заходим в меню Свойства> Новое свойство и мы регистрируем данные как обычную запись wordpress, только тогда у нас будет категория и изображение или фотография для вставки в качестве выделенного изображения.

Напомним, что изображения будут иметь размер 80 x 80 пикселей для перечисления свойств, это мы определили в нашем нестандартном размере. настоящий палец поэтому лучше всего использовать квадратные изображения, чтобы они не обрезались, в идеале это было бы 500x500 пикселей.Затем при сохранении изменений мы можем перейти к просмотру списка свойств, и мы увидим наши настраиваемые столбцы со всеми функциями, активированными для поиска, фильтрации, сортировки по алфавиту или просмотра только провинции и т. Д.

Этим будет очень легко управлять, и мы также можем добавить больше функций, если нам нужно изменить тип настраиваемой записи или настраиваемый тип сообщения. С точки зрения повторного использования компонент оптимален, потому что, если мы хотим использовать его в другом проекте, мы просто копируем настраиваемый тип сообщения, включаем его в наш файл functions.php, и он будет доступен для использования без необходимости его перепрограммирования.Затем с помощью простого кода мы можем показать это дома или в разделе нашего веб-сайта, выполнив поиск по провинции или по типу собственности.Мы также можем расширить компонент, добавив больше функций или дополнив его другими плагинами, например, чтобы реализовать его на нескольких языках с помощью Qtraslator или добавить несколько изображений Несколько избранных изображений чтобы иметь больше выдающихся изображений и создать фотогалерею для каждого объекта недвижимости.Изменение некоторых строк также может быть использовано для автомобильного агентства, где категориями являются марки и модели транспортных средств, или для туристического агентства, где у нас будут пакеты и направления, возможности безграничны, все зависит от потребностей и нашего воображения.