Ответы пользователя по тегу WordPress
  • Где можно найти хороший урок по "натягиванию" вёрстки на WP (подробности в описании)?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Здравствуйте, посмотрел недружелюбные комментарии под вопросом, удивился, решил написать.
    Нормально все вы спрашиваете, странно что у людей бомбануло.

    Вот несколько роликов, которые надеюсь будут в тему:
    1) Создание слайдера на бутстрапе с помощью плагина ACF Pro
    https://youtu.be/N1H_F-ycnKw
    т.е. мы реализуем настраиваемый слайдер, который можно добавить в любую тему

    2) Подробный разбор плагинов ACF и ACF Pro (запись вебинара)
    https://youtu.be/yiMTB-FQg0g
    ACF — один из основных инструментов для переноса верстки на WordPress

    3) Первый ролик (надеюсь получится серия) по процессу натягивания верстки на WordPress
    https://youtu.be/Mj1hGgfFyKo

    Задавайте вопросы
    Ответ написан
  • Тема на WordPress?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Здравствуйте, Михаил
    Увидел ваш комментарий к предыдущему ответу, и возможно, понял в чем проблема. Вы взяли за основу стартовую тему _underscores, которая имеет много достоинств, но слишком громоздкая/сложная для создания небольших неблоговых проектов.

    1) Используйте шаблоны страниц, как основу для вашего проекта. Создайте файлы типа page-about.php, page-services.php ... Т.е отдельная верстка под каждую уникальную страницу. Чтобы эти файлы "подцепились", нужно прописать, что это шаблоны страниц, для этого в первой строчке каждого файла укажите <?php //Template Name: Название шаблона ?>

    2) Для того чтобы соединить контент и верстку используйте плагин Advanced Custom Fields. Он позволит создать нужное количество различных полей для управления всеми частями страницы.

    Вот что видно на фронте:
    5da98a0e2461d716327853.jpeg

    Вот как выглядит управление в админке:
    5da98a5fa8d81402307496.png

    Вот код для верхнего баннера:
    5da98ab219b35115012681.png
    Вместо конкретной надписи стоит вызов функций the_field() (плагин ACF)

    3) В принципе, можно не брать стартовую тему за основу, а создать свою на основе готовой верстки.
    Ответ написан
  • Хорошо ли плагины работают с кастомными темами в WordPress?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Скажу даже больше, можно взять любой html-шаблон, превратить его в тему WP, а дальше пользоваться всеми преимуществами готовых решений.

    Использование виджетов - не единственная возможность. Функционал любой кастомной темы отлично расширяется с помощью шорткодов.
    Ответ написан
  • Есть ли плагины (решения) для внесения изменений в тему Wordpress?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    1) Для внесения изменений в уже готовые темы есть дочерние темы

    2) Для натяжки своего дизайна на Вордпресс лучше подойдут стартовые темы

    3) Не знаю чем вызвана ваша плагинофобия. В коммерческой разработке не является предосудительным использовать готовые решения.
    3.1 Например, тот же Элементор позволяет создавать собственный дизайн независимо от текущей темы
    3.2 Вот интересное решение, которое поможет "сэкономить" на программировании https://toolset.com/
    3.3 Сам работаю на связке Advanced Custom Fields Pro + Стартовая тема на Bootstrap

    4) На что стоит обратить внимание и изучить:
    А) Иерархия шаблонов вордпресс. Правильно названный файл -- и вам ненужно писать десяток строчек кода.
    https://wp-kama.ru/id_7654/ierarhiya-fajlov-temy-s...

    Б) Базовые функции WordPress, которые используются в шаблонах
    https://wp-kama.ru/handbook/cheatsheet

    В) Фреймворк для фронт-энда, например тот же Бутстрап

    Г) Плагины для кастомизации бэкенда, для удобного управления сайтом/контентом. ACF, Carbon Fields, Types, тысячи их.

    5) Бонусом, полезный сайт: https://generatewp.com/
    Ответ написан
  • Как добавить свою кнопку в wordpress?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    С подобной задачей не сталкивался, но если суть только в том, чтобы добавить рамку -- можно попробовать обходной маневр: использовать уже существующую, но не популярную кнопку, например Цитата или заголовок H6 и просто указать для этих элементов соответствующий стиль.
    Ответ написан
  • Кнопка изменения размера шрифта в статье Wordpress?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Точно уверен -- это не единственный способ и, скорее всего, есть готовые решения с большим функционалом.

    Допустим, текст статьи у вас содержится внутри дива с классом content, тогда ваша задача сводится к следующему

    1) В CSS добавить новый стиль, для случая когда у дива с классом content есть дополнительный класс, например font__big. Получится что-то типа этого
    .content.font__big { 
         font-size: 18px; 
      }


    2) Дальше нужно добавить кнопку и немного js-кода, чтобы при нажатии на кнопку для элементы с классом
    .content добавлялся класс .font__big
    Пример такого кода с использованием jQuery:
    jQuery(document).on('click', '.класс-кнопки', function() { 
    		jQuery('.content').toggleClass('font__big');
    	} );
    Ответ написан
  • Чем верстать тему Wordpress?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    1. Как вы кастомизируете свои темы для Wordpress?
    Если речь идет о доработке готового проекта, то чаще всего использую дочерние темы + плагин Advanced Custom Fields (ACF). Дочерняя тема нужна чтобы разделить нативные файлы темы и собственные доработки. ACF нужен для удобного интерфейса редактирования страниц и более быстрого создания шаблонов.

    2. Используете что-то типа Unyson?
    Для проектов из разряда «дешево и сердито» раньше брал https://toolset.com/
    Кастомные типы записи и таксономию делаю с помощью https://generatewp.com/
    80% всех задача решает Advanced Custom Fields Pro, остальные плагины смотрю под конкретный проект

    3. Верстать тему ручками моветон?
    Создание тем для конкретного проекта, на продажу и для репозитория вордпресс -- очень разные задачи. Могу рассказать про коммерческие проекты, когда есть готовый (кастомный) дизайн.
    а) В большинстве случаев стартовые темы -- отлично подходят. Используйте ту, которую понимаете и нативно используете ее функционал.
    б) Если стартовая тема построена на фреймворке (например Bootstrap) это может стать дополнительным плюсом в случае если дизайн «ложится» в сетку фреймворка. Для себя выбрал тему _Tk от Theme Kraft (Bootstrap 3).
    в) Если нужен лендинг, с каким-то мега-дизайном, который не ложится ни в одну сетку, а по функционалу нужна только одна страница -- проще сверстать и на основе верстки создать новую тему с минимом файлов.

    Буду рад ответить на дополнительные вопросы
    Ответ написан
  • Плохая структура ссылки вордпрес,почему?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Скорее всего проблема в самой ссылке в шаблоне страницы. Если я правильно понял вопрос тогда:

    // $manager_id - это id записи типа менеджер, 
    <a href="<?php echo get_the_permalink($manager_id); ?>">Имя Менеджера</a>
    Ответ написан
  • Как улучшить код карусели bootstrap в wordpress с acf repeater?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    В ACF для работы с полями типа Repeater есть полезная функция get_row_index() — она выводит текущий номер «строки». Важно для первой строки get_row_index() возвращает 1, а не 0 как это принято в программировании.

    Тогда получается, что этот кусок кода можно упростить:
    <?php
      $slideto++;
      if ($slideto == "0") {
      ?>
      
      <div class="carousel-item active">
        <?php
           }else{
        ?>
        <div class="carousel-item">
         <?php  }  ?>


    Можно упростить:

    <div class="carousel-item <?php if (get_row_index() == 1 ) echo 'active'; ?>">
    Ответ написан
  • Как создать функцию для вывода шаблона произвольного типа записи?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Здравствуйте.
    В Вордпрессе есть нативная функция для подключения файлов темы:
    get_template_part('content'); //выведет содержимое файла content.php
    get_template_part('content','single'); //выведет содержимое файла content-single.php
    //в случае если файл content-single.php отсутствует функция подгрузит content.php
    get_template_part('parts/slider','portfolio'); //выведет файл slider-portfolio.php из папки parts

    Подробно о функции:
    https://wp-kama.ru/function/get_template_part

    =========

    В Вордпрессе есть такое понятие как иерархия шаблонов
    https://codex.wordpress.org/%D0%98%D0%B5%D1%80%D0%...

    Т.е. правильно названные файлы будут автоматически подружатся в нужных местах. Если у вас есть кастомный тип записей activities, то для создания отдельного шаблона страницы activities -- вам достаточно создать файл single-activities.php для создания отдельного шаблона архива archive-activities.php
    Ответ написан
  • Создание собственных блоков без знаний php - для популярных билдеров wordpress. Реально?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    На счет билдеров не уверен, не пробовал. Если вы умеете верстать, то неплохим вариантом могут стать Advanced Custom Fields PRO или плагины серии Toolset (Types/Views/Forms и т.д.).

    Т.е. вы получаете свой настраиваемый конструктор под конкретный дизайн / проект:
    5be95a2fadf3d263394783.jpeg5be95a1b63aa6833019073.jpeg

    Если инетерсно -- могу написать подробнее
    Ответ написан
  • Какова средняя стоимость услуги разработки WordPress сайта?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Здравствуйте.
    Вы описали не самый типичный и не самый простой функционал для сайта на Вордпрессе. Это означает, что далеко не каждый разработчик, который возьмется за это дело -- справится.

    За 10 000 рублей вы сможете найти человека, который установит вам Вордпресс и купленные вами плагины. Надо быть готовой к тому, что на этом этапе сайт будет выглядеть и работать в лучшем случае на троечку.

    В районе 40 000- 50 000 рублей возможно найти человека, который сделает сайт целиком при условии, что функционал плагина бронирования перекрывает ваши нужды, если нет, то цена может увеличиваться кратно.

    от 100 000 тысяч можно уже искать команду, чтобы пройти полный цикл: составление ТЗ, разработку дизайна, программирование функционала, допилку деталей, тестирование, запуск.
    Ответ написан
  • Как перевести свою тему на полное управление через админ панель Wordpress?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Евгений, если вы в Москве -- приходите 15 ноября на WP Moscow #4 (встречу WordPress-разработчиков в Москве), один из докладчиков как раз выступит на интересующую вас тему: https://vk.com/wall-167969562_67

    Участие бесплатное
    Ответ написан
  • Как в Wordpress вывести список страниц с дополнительным полем вместо названия страницы?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Код представленный ниже нужно вставить в functions.php вашей темы. Это функция, которая добавляет шорткод [cities], который вы можете поставить там где нужно. У шорткода есть два атрибута parent, чтобы указать ID родительской страницы и key - чтобы можно было вывести не только town_name, но и любое другое поле

    Вариант применения: [cities parent=123]

    // Add Cities Shortcode
    function cities_shortcode( $atts ) {
    
    // Список возможных параметров шорткода: родительская страница и имя поля, значение которого нужно вывести
    	$atts = shortcode_atts(
    		array(
    			'parent' => '',
    			'key' => 'town_name'
    		),
    		$atts
    	);
    
    	// Задаем параметры WP_Query, чтобы получить список всех нужных страниц в одном объекте
    	$args = array(
    	  'post_type'              => array( 'page' ),
    	  'post_status'            => array( 'publish' ),
    	  'post_parent' => $atts[parent]	
    	);
    
    	//Объект WP_Query	
    	$page_query = new WP_Query( $args );
    	
    	//Обертка для всех элементов, которые получатся, можно вставить свои классы
    	$result_start = '<ul class="cities-list">';
    	$result_end = '</ul>';
    	
    	//Цикл, выводим все города
      	while ( $page_query->have_posts() ):
        	$page_query->the_post();
    		$post_id = get_the_ID(); //ID Страницы
    		$city_name = get_post_meta( $post_id, $atts[key], true ); //Название города
    		$result = $result  . '<li class="cities-item"><a href="' . get_the_permalink() . '">' . $city_name . '</a></li>'; //Название города, ссылка, + обертка из <li>
      	endwhile;		
    	
    	wp_reset_postdata();	
    	
    	return $result_start . $result . $result_end;
    }
    
    add_shortcode( 'cities', 'cities_shortcode' );
    Ответ написан
  • Как задать бекграунд div'у в кастомных полях ACF?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    В настройках поля imageback можно указать будет ли отдаваться весь массив данных картинки или только url

    Вариант с Массивом (дефолтный):
    <div class="page-title" style="background-image: url(<?php $image = get_field('imageback'); echo $image[sizes][large] ?>);">

    Вариант с URL:
    <div class="page-title" style="background-image: url(<?php the_field('imageback') ?>);">
    Ответ написан
  • Как правильно подгрузить свои стили и js в уже в готовый шаблон wordpress?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Коллеги выше все правильно написали, на всякий случай попробую эту же информацию подать развернуто.

    1. Техника безопасности. Перед началом редактирования сайта -- сделайте полный бэкап, например с помощью WP All in One Migration, чтобы в случае чего полностью откатиться назад.

    2. Если ваш сайт работает на основе готовой темы — имеет смысл перед доработкой / внесением изменений (создание страницы с отдельным шаблоном — это именно оно) создать дочернюю тему. Это позволит а) разделить ваши доработки и то что было до вас б) при обновлении темы изменения не исчезнут в) всегда можно отключить дочернюю тему, если что-то сломали
    Плагин для создания дочерних тем: https://wordpress.org/plugins/orbisius-child-theme...

    3. После того как вы создали дочернюю тему. Вам нужно создать новый файл шаблона. Например page-main.php (название файла, в целом, не важно). И главное в этом файле в первой строчке написать <?php //Template Name: Название вашего шаблона ?>. В этом случае файл будет восприниматься как шаблон страницы и в интерфейсе редактирования страницы у вас появится возможность выбрать этот шаблон

    4-А. Если ваш дизайн никак не бьется с основным дизайном сайта, можно в файле page-main.php после первой строчки просто вставить целиком верстку.

    4-Б. Если на вашей странице шапка и подвал такие же как на сайте, тогда ваш файл будет выглядеть так

    <?php //Template Name:  Название вашего шаблона ?>
    <?php get_header(); ?>
    
    Здесь может идти любая ваша верстка
    
    <?php get_footer(); ?>


    Для правильной установки ваших скриптов и стилей -- скопируйте их в папку с темой и подключите их, прописав в файле functions.php вашей дочерней темы как это описано у Евгения выше

    5. Создайте страницу в интерфейсей WordPress и выберите для нее созданный шаблон. Посмотрите, если результат правильный -- назначьте эту страницу главной
    Ответ написан
  • Статический сайт и динамический блог? легкие динамический страницы?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Скорость загрузки это проблема «обвеса» в виде тем и плагинов, а не самого WordPress.

    Для вашей задачи подойдут стартовые темы на основе Bootstrap. «Стартовая тема» означает, что в ней нет лишнего оформления, и содержится только базовый функционал WordPress и необходимые файлы. Такая тема предназначена для дальнейшего изменения и доработки под конкретную задачу.

    Посмотрите на стартовую тему _Tk. Установив тему вы получите все преимущества как WordPress так и Bootstrap

    • Сетка, компоненты и модули Bootstrap уже установлены на сайте
    • У вас уже созданы отдельные файлы под Шапку, подвал, запись блога, страницу, архивы и т.д.
    • Для меню, виджетов, наполения страниц и много другого уже есть админка
    • Вы можете воспользоваться плагинами кеширования для ускорения загрузки сайта
    Ответ написан
  • Как загрузить изображение из админки в карусель на wordpress?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Тут выше правильно отметили ACF PRO, он крайне удобен для создания интерфейса кастомных слайдеров
    Лицензия Advanced Custom Fields PRO стоит 25$, это разумные деньги если планируете использовать весь функционал

    В вашем случае, если нужно добавлять только картинки в слайдер, можно пойти проще.
    1) С помощью бесплатного плагина Advanced Custom Fields (без приставки ПРО) создайте группу кастомных полей типа Изображение. Для простоты в настройках поля укажите Ссылка на файл.
    slider-image-1
    slider-image-2
    ...
    slider-image-10 (Делаю допущение, что в слайдере не более 10 фото)

    2) Назначьте созданную группу для шаблона страницы или типа записи, где у вас выводится слайдер. На странице редактирования страницы у вас появятся 10 полей для вставки изображений, добавьте их.

    3) В шаблоне, где у вас прописан статический слайдер, найдите див, который является оберткой для слайдов и вместо html-кода нескольких слайдов вставьте php-код, чтобы соединить слайдер с acf-полями:

    <?php
    //Счетчик, чтобы пройти все 10 картинок
    $counter = 1; 
    
    //Создаем цикл, чтобы обойти все десять полей
    while ($counter < 11):
       //Собираем название acf-поля для каждой итерации
       $acf_field = 'slider-image-' . $counter; 
     
       //Проверяем, что картинка в поле загружена и только в этом случае выводим слайд   
      if (get_field($acf_field)): 
         //Здесь начинается верстка вашего слайда, у меня условный пример
         echo '<div class="slider-item">'; 
         echo '<img src="' . get_field($acf_field) . '">';
         echo '</div>';
      endif; 
    
    //Увеличиваем счетчик на 1
    $counter++;
    endwhile;
    ?>
    Ответ написан
  • Хороши ли корструкторы для создания сайта?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    Плюсы конструкторов
    • Возможность сделать проект без дизайнера и программиста
    • Широкий набор блоков и возможностей
    • Почти все конструкторы имеют дополнения и расширения
    • Наборы готовых шаблонов
    • Удобство для пользователя для дальнейшего использования / наполнения


    Минусы конструкторов
    • Если мало опыта и нет вкуса в результате получится говно
    • Намного сложнее делать сайт по готовому дизайну, так как нужно создавать свои или переназначать существующие блоки
    • При прочих равных сайт на конструкторе более тормозной чем хорошо написанный сайт под конкретную задачу
    • Удобство для пользователя для дальнейшего использования / наполнения


    Если вы начинающий веб-разработчик, то нет ничего плохого в использовании конструкторов. Полезно разобраться в одном из популярных конструкторов (скажем Elementor или Visual Composer), это поможет сократить время на разработку/наполнение в некоторых случаях.

    Но это не полноценная замена умению программирвоать
    Ответ написан
  • Не выводится php-код ниже цикла while, в чем проблема?

    solidcreature
    @solidcreature
    Разработчик сайтов на WordPress
    У вас ошибка в синтаксисе PHP, соответственно все что ниже не обрабатывается

    Навскидку ошибка в этой строке:
    echo "<a class='popup-link' href=" . $field_value . "><img src=" . $field_value . "></a>";


    Попробуйте так:
    echo '<a class="popup-link" href="' . $field_value . '"><img src="' . $field_value . '"></a>';
    Ответ написан