VictoriaVorobieva20 18.01.2023 18:02

Как создать кастомный тип записей для портфолио на сайте на WordPress?

Приветствую!

Я новичок в WordPress и столкнулась с проблемой создания кастомного типа записей для портфолио на своем сайте. Я хотела бы, чтобы у меня была отдельная страница для отображения всех моих работ в портфолио.

У меня есть код, который я использовала для создания кастомного типа записей, но что-то идет не так, и я не могу понять, как исправить это. Буду благодарна, если кто-то с опытом в WordPress поможет мне разобраться.


function create_portfolio_post_type() {
   register_post_type( 'portfolio',
      array(
         'labels' => array(
            'name' => __( 'Портфолио' ),
            'singular_name' => __( 'Работа' )
         ),
         'public' => true,
         'has_archive' => true,
         'rewrite' => array('slug' => 'portfolio'),
      )
   );
}
add_action( 'init', 'create_portfolio_post_type' );

Похоже, что кастомный тип записей не создается или не отображается на моем сайте. Я хотела бы узнать, что я делаю не так в коде и как исправить эту проблему. Буду благодарна за любую помощь!

Заранее спасибо!

Ответы:

kirillZ38 18.01.2023 18:06
Проверьте, чтобы ваш функция create_portfolio_post_type() была вызвана в правильном месте, чтобы создать кастомный тип записей.
kondkomrad45 18.01.2023 18:12
Для создания кастомного типа записей в WordPress вам понадобится добавить код в функцию, которая будет вызываться при инициализации сайта. В вашем примере кода вы используете функцию create_portfolio_post_type(), которая регистрирует кастомный тип записей "Портфолио". Однако, чтобы ваш кастомный тип записей корректно работал, вам необходимо убедиться, что вы правильно настроили его параметры. В вашем коде вы указали параметры labels, public, has_archive и rewrite. 1. Параметр labels определяет названия, которые будут использоваться для вашего кастомного типа записей. В вашем случае, кастомный тип записей будет называться "Портфолио", а каждая запись в нем будет называться "Работа". 2. Параметр public указывает, будет ли ваш кастомный тип записей доступен в публичной части сайта. В вашем случае, значение true указывает на то, что записи из кастомного типа "Портфолио" будут отображаться на вашем сайте. 3. Параметр has_archive определяет, будет ли у вашего кастомного типа записей архивная страница. В вашем коде архивная страница будет доступна по адресу /portfolio. 4. Параметр rewrite позволяет настроить правила для URL-адресов записей вашего кастомного типа. В вашем случае, записи будут доступны по адресу /portfolio/{название-записи}. Хотя ваш код кажется правильным, есть несколько возможных причин, по которым кастомный тип записей не создается или не отображается на вашем сайте. 1. Проверьте, что вы добавили этот код в правильное место. Он должен быть размещен в файле functions.php вашей темы или в плагине. 2. Убедитесь, что вы не используете функцию create_portfolio_post_type() внутри другой функции, которая не вызывается при инициализации сайта. Она должна быть добавлена непосредственно в корневую область кода. 3. Проверьте, что вы не используете одинаковые названия для функций или других типов записей. Иногда это может вызывать конфликты и препятствовать созданию кастомного типа записей. Если после проверки всех этих моментов кастомный тип записей по-прежнему не работает, попробуйте использовать плагин, который поможет вам создать кастомные типы записей. Например, "Custom Post Type UI" или "Advanced Custom Fields" - это популярные плагины, которые могут сделать процесс создания кастомных типов записей более простым и удобным. Надеюсь, эти советы помогут вам разобраться с проблемой. Если у вас возникнут еще вопросы, не стесняйтесь задавать их - мы всегда готовы помочь! С уважением, [Ваше имя]

Добавить ответ