Как осуществить возможность добавления контента (блоков) заказчиком на wordpress?

Ссылка скопирована
1 ответ

Здравствуйте

Есть блок, назовём его портфолио, состоящий из 3-х лайнов.

Как осуществить возможность добавления контента (блоков) заказчиком на wordpress?

Нужно реализовать, чтобы заказчик мог добавлять такие же лайны, менять текст и фото, как это сделать?

Сайт переносил на wordpress, изначально свёрстан на html, css и js

Дополнительно:

Блоки можно копировать и править.
Можно даже занести в "мои блоки" и использовать (но с этим есть нюансы)

В чём проблема - не ясно.

  • По логике это кастомный post_type project или case, регистрируется с помощью функции register_post_type(), скриншот, который вы прилагаете это архивная (общая) страница всех проектов, добавляется с помощью аргумента функции has_archive => 'projects'
  • Ответы:

    Хотя бы тем же плагином ACF. Создаете на нужной странице пользовательские области и он будет через них вставлять. Вы не сказали на какой странице. Если речь о Главной странице, то выводите пользовательские области в шаблоне этой страницы.

    Как осуществить возможность добавления контента (блоков) заказчиком на wordpress?

    Я обычно делал это через ACF.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Мария Код Ответ

    Для такой задачи не стоит оставлять заказчику ручное копирование HTML. Нужна управляемая структура: либо блоки Gutenberg, либо ACF Repeater/Flexible Content, либо отдельный custom post type, если это полноценное портфолио/кейсы.

    Если блок “портфолио” состоит из повторяющихся строк с фото и текстом на одной странице, самый быстрый вариант — ACF Repeater:

    • создать поле portfolio_rows типа Repeater;
    • внутри добавить поля image, title, text, link;
    • вывести эти строки в шаблоне страницы;
    • заказчик будет нажимать “Добавить строку” и заполнять поля без доступа к верстке.
    <?php if (have_rows('portfolio_rows')) : ?>
        <div class="portfolio">
            <?php while (have_rows('portfolio_rows')) : the_row(); ?>
                <article class="portfolio__item">
                    <?php
                    $image = get_sub_field('image');
                    if ($image) {
                        echo wp_get_attachment_image($image['ID'], 'large', false, ['class' => 'portfolio__image']);
                    }
                    ?>
                    <h3><?php echo esc_html(get_sub_field('title')); ?></h3>
                    <p><?php echo esc_html(get_sub_field('text')); ?></p>
                </article>
            <?php endwhile; ?>
        </div>
    <?php endif; ?>

    <?php if (have_rows('portfolio_rows')) : ?> <div class="portfolio"> <?php while (have_rows('portfolio_rows')) : the_row(); ?> <article class="portfolio__item"> <?php $image = get_sub_field('image'); if ($image) { echo wp_get_attachment_image($image['ID'], 'large', false, ['class' => 'portfolio__image']); } ?> <h3><?php echo esc_html(get_sub_field('title')); ?></h3> <p><?php echo esc_html(get_sub_field('text')); ?></p> </article> <?php endwhile; ?> </div> <?php endif; ?>

    Если это не просто блок на главной, а отдельные работы портфолио со своими страницами, правильнее зарегистрировать post_type, например project, и выводить архив проектов. Тогда заказчик будет добавлять не “строки”, а отдельные записи портфолио.

    Если сайт уже на Gutenberg и нужны блоки для разных страниц, лучше смотреть в сторону собственных ACF Blocks или нативных блоков. Это удобнее для контентщика, чем набор полей под страницей.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно