RGameShow
@RGameShow
В поисках ответов на глупые вопросы

Как написать аналог страницы «ЗАПИСИ» на WordPress?

Хочу сделать аналог страницы "ЗАПИСИ" в CMS WordPress.
Без рубрик и меток, пока что...
Идея такая чтобы можно было просто добавлять Персонал, состоящий из 150 человек(Будет увеличиваться) и выводить на одну страницу с пагинацией.

Поля стандартные, имя, фамилия, фото, должность и тд

Я не прошу делать за меня всю работу и тд, просто есть какие-то статейки, которые помогли бы достичь данного результата?

От помощи, в качестве предложение кода, тоже не откажусь))
  • Вопрос задан
  • 206 просмотров
Решения вопроса 2
RGameShow
@RGameShow Автор вопроса
В поисках ответов на глупые вопросы
ОТВЕТ СЛЕДУЮЩИЙ
<?php

add_action( 'init', 'register_post_types' );
function register_post_types(){
	register_post_type('post_type_name', array(
		'label'  => null,
		'labels' => array(
			'name'               => '____', // основное название для типа записи
			'singular_name'      => '____', // название для одной записи этого типа
			'add_new'            => 'Добавить ____', // для добавления новой записи
			'add_new_item'       => 'Добавление ____', // заголовка у вновь создаваемой записи в админ-панели.
			'edit_item'          => 'Редактирование ____', // для редактирования типа записи
			'new_item'           => 'Новое ____', // текст новой записи
			'view_item'          => 'Смотреть ____', // для просмотра записи этого типа.
			'search_items'       => 'Искать ____', // для поиска по этим типам записи
			'not_found'          => 'Не найдено', // если в результате поиска ничего не было найдено
			'not_found_in_trash' => 'Не найдено в корзине', // если не было найдено в корзине
			'parent_item_colon'  => '', // для родителей (у древовидных типов)
			'menu_name'          => '____', // название меню
		),
		'description'         => '',
		'public'              => true,
		'publicly_queryable'  => null, // зависит от public
		'exclude_from_search' => null, // зависит от public
		'show_ui'             => null, // зависит от public
		'show_in_menu'        => null, // показывать ли в меню адмнки
		'show_in_admin_bar'   => null, // по умолчанию значение show_in_menu
		'show_in_nav_menus'   => null, // зависит от public
		'show_in_rest'        => null, // добавить в REST API. C WP 4.7
		'rest_base'           => null, // $post_type. C WP 4.7
		'menu_position'       => null,
		'menu_icon'           => null,
		//'capability_type'   => 'post',
		//'capabilities'      => 'post', // массив дополнительных прав для этого типа записи
		//'map_meta_cap'      => null, // Ставим true чтобы включить дефолтный обработчик специальных прав
		'hierarchical'        => false,
		'supports'            => array('title','editor'), // 'title','editor','author','thumbnail','excerpt','trackbacks','custom-fields','comments','revisions','page-attributes','post-formats'
		'taxonomies'          => array(),
		'has_archive'         => false,
		'rewrite'             => true,
		'query_var'           => true,
	) );
}

?>
Ответ написан
Комментировать
azerphoenix
@azerphoenix
Java Software Engineer
Здравствуйте!
1) Создайте кастомный тип записи (добавьте в functions.php)

<?php 
// Регистрируем кастомные типы записей и таксономии
add_action('init', 'register_post_types');
function register_post_types(){

register_post_type('personal', array(
		'label'  => 'Персонал',
		'labels' => array(
			'name'               => 'Персонал',
			'singular_name'      => 'Персонал',
			'add_new'            => 'Добавить сотрудника',
			'add_new_item'       => 'Введите заголовок',
			'edit_item'          => 'Редактирование персонала',
			'new_item'           => 'Новый сотрудник',
			'view_item'          => 'Посмотреть сотрудника',
			'search_items'       => 'Искать сотрудника',
			'not_found'          => 'Сотрудников не найдено',
			'not_found_in_trash' => 'В корзине сотрудников не найдено',
			'parent_item_colon'  => '',
			'menu_name'          => 'Персонал',
		),
		'description'         => 'Персонал',
		'public'              => true,
		'publicly_queryable'  => true,
		'exclude_from_search' => false,
		'show_ui'             => true,
		'show_in_menu'        => true,
		'show_in_admin_bar'   => true,
		'menu_position'       => 24,
		'menu_icon'           => 'dashicons-format-video', 
		'capability_type'   => 'post',
		'map_meta_cap'      => true,
		'hierarchical'        => false,
		'supports'            => array('title'),
		'taxonomies'          => array('portfolio-category'),
		'has_archive'         => true,
		'rewrite'             => array('slug' => 'personals', 'with_front' => false),
		'query_var'           => true,
	) );

}
?>

2) Установите плагин ACF и создайте кастомные поля
https://ru.wordpress.org/plugins/advanced-custom-f...
Имя - тип поля "Текст"
Фамилия - тип поля "Текст"
Должность - тип поля "Текст"
Фото - тип поля "Изображение", тип возвращаемого значения - ссылка на изображение

Назначьте эту группу полей для типа записи "Персонал".
3) Создайте минимально необходимый набор шаблонов:
single-personal.php (шаблон для отображения единичной записи сотрудника). Можно структуру шаблона скопировать из single.php.
Далее просто выведите созданные вами поля в шаблоне.
Например, если вы задали название поля для имени name, то
<?php the_field('name'); ?>
для изображения:
<img src="<?php the_field('image')?>" width="100%"/>

ну и т.д.

И это все дело нужно вывести внутри цикла ВП.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы