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

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Например так

    $i = 1;
    while( $loop->have_posts() ) {
    	$loop->the_post();
    
    	if ( $i == 1 ) {
    		# первый пост
    	} else {
    		# все остальные
    	}
    
    	$i++;
    }
    Ответ написан
    Комментировать
  • Как разделить на категории в вордпресс?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    В чем сложность? Добавляете две рубрики, при публикации записи указываете к какой рубрике она относится. Внешний вид → Меню, чтобы добавить их в меню
    Ответ написан
  • Что выбрать домены или поддомены для своего сайта и не загубить при этом seo?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    А вы думаете, что на ваши заметки о путешествиях кто-то придет из SEO? Если вы не супер известный человек, то я бы на вашем месте не особо рассчитывал, что кто-то из поиска придет читать ваш сайт

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

    Например, посмотрите сайт Варламова — 10-20к просмотров против 20-140к лайков (просмотры x 2-3) в инстаграме. И контент проще публиковать и соц.сеть сама занимается его продвижением. А у большинства блогеров вообще сайта нет, только соц.сети

    А вот сайт по программированию это вещь нужная. Если цель в том, чтобы получать заказчиков из поиска, то начните писать хорошие, качественные материалы и со временем они к вам станут обращаться
    Ответ написан
    2 комментария
  • Насколько критичен размер файла стилей (style.css и других)?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Размер файла стилей критичен менее остальных параметров. Сайты на WordPress топят полотна стилей и скриптов, которые норовит подключить примерно каждый первый плагин. А еще нужно сжать изображения, минифицировать файлы, кешировать дублирующие запросы — вот это важнее

    Кстати, мне даже интересно, что вы там понаписали на 350 кбайт, это ведь реально очень много, наверное 10к+ строк
    Ответ написан
  • Какие есть плагины для создания доски объявлений на WordPress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Чаще всего спрашивают про маркетплейсы, т.е. чтобы пользователи могли публиковать свои товары на продажу в каком-то виде. Тут на слуху два плагина:
    1. Dokan
    2. WP-Recall

    Если ваши объявления не предполагают продажу, то это вполне реально реализовать и без плагинов в принципе, т.к. объявление по своей сути не очень-то отличается от обычной записи, а записи может публиковать любой пользователь, если вы разрешите регистрацию на своем сайте
    Ответ написан
    Комментировать
  • Как стоит сверстать хэдер?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    Визуально выглядит будто у проекта сетка на всю ширину с паддингами по краям, .container-fluid, если бутстрап. Лого 3 колонки, кнопка 2, остальное под меню с выравниванием по правому краю
    Ответ написан
    Комментировать
  • Как переиспользовать шаблоны?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    <?php get_template_part( 'form-contacts' ); ?>
    Ответ написан
    2 комментария
  • Google PageSpeed показывает разные показания. чему верить?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Там же написано: "Значения приблизительные и могут изменяться". Через 28 дней (может больше) в разделе Origin Summary должна появиться такая табличка, это средние значения, на них стоит ориентироваться

    6123247c365f5881406836.png
    Ответ написан
    Комментировать
  • Largest Contentful Paint норма ли прыганье результатов?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Да, норма. Там написано: "Значения приблизительные и могут изменяться". Через 28 дней (может больше) в разделе Origin Summary должна появиться такая табличка, это средние значения, на них стоит ориентироваться

    612322dc16391860532625.png
    Ответ написан
    Комментировать
  • Почему в Wordpress не отображаются изображения к записям?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Тут может быть много гипотез, например:

    • Вы не добавили изображения
    • Что-то с ACF
    • В массиве ['sizes'] нет значения 'medium'
    • Для .product_image не заданы стили, поэтому высота изображения 0


    Нужно дебажить: сначала удостовериться, что в url() выводится нужная ссылка на изображение, потом смотреть высоту элемента в css
    Ответ написан
    2 комментария
  • Как правильно подключить отдельно скрипты и стили на разных страницах WordPress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Проще всего проверить post_type, чтобы применить стили для конкретного типа записи. Это условие сработает и для архивных и для сингл страниц

    if ( get_post_type() === 'post' ) {
    	# code...
    }


    Что касается вашей задачи, то понадобится составное условие. Вам нужно убедиться, что вы находитесь в одной из двух категорий или сингл post имеет одну из двух категорий:

    if ( is_category( [ 'news', 'projects' ] ) || ( is_singular( 'post' ) && has_category( [ 'news', 'projects' ] ) ) ) { 
    	# code...
    }
    Ответ написан
    1 комментарий
  • Как в WP сделать кастомную страницу через исходные файлы?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Нужно в корне темы создать шаблон вида template-about-page.php. В самом шаблоне нужно указать его название и перечислить типы записей для которых он будет применяться

    /*
    Template Name: Шаблон о компании
    Template Post Type: post, page
    */
    Ответ написан
    Комментировать
  • Как вывести пагинацию на странице рубрик?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    На архивных страницах рубрик и таксономий уже существует глобальный запрос, перебивать его своим — это моветон и издевательство надо производительностью

    Рекомендую вам посмотреть archive.php популярных или стандартных тем twenty, там вы не найдете кастомных запросов WP_Query()

    С глобальным запросом прекрасно работают функции ядра the_posts_pagination() или the_posts_navigation()

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

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Скорее всего вы хотите вывести товары не какого-то конкретного пользователя, а текущего. Для этого вам может быть подойдет больше хук pre_get_posts, на нем по нужным условиям можно отфильтровать основной запрос:

    add_action( 'pre_get_posts', 'set_products_current_user', 1 );
    function set_products_current_user( $query ) {
    	// Выходим, если это админ-панель или не основной запрос
    	if( is_admin() || ! $query->is_main_query() )
    		return;
    
    	// Устанавливаем текущего юзера, если это запрос товаров
    	if ( $query->get( 'post_type' ) == 'product' ) {
    		$query->set( 'author', get_current_user_id() );
    	}
    
    }
    Ответ написан
  • Как называется хук в seo yast, который получает мета из админки или который добавляет мета на страницу?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Немного лирики: я довольно долго бодаюсь с yoast и, к сожалению, дока и качество исходников оставляют желать лучшего, к тому же они могут их переписывать — сегодня у вас данные в одной таблице лежат, а завтра уже в другой. К тому же, у них просто невероятное количество кода, как для плагина который просто выводит десяток мета-тегов. Надеюсь в обозримом будущем SEO добавят в ядро и я смогу отказаться от этого недоразумения)

    Ближе к делу: перебирая разные варианты работы с yoast я в конце концов остановился на том, что при установке меняю все поля "SEO-заголовок" и "Мета-описание" в разделе "Отображение в поисковой выдаче" на %%InsteadTitle%% и %%InsteadDescription%%

    После чего подключаю свой файл в тему, где создаю эти переменные и собираю их так, как мне нужно — чаще всего заголовки и описания берутся из excel или лежат в пост-мете (даты проведения мероприятия, характеристики товара). Болванка выглядит так:

    // Заголовки
    function get_seo_instead_title() {
    
    	$string = '';
    
    	if ( is_archive() ) {
    		// берем сео-заголовки из excel-таблицы
    	}
    
    	if ( is_single() ) {
    		// собираем сео-заголовки из get_the_title() и get_post_meta()
    	}
    
    
    	if ( $string == '' ) {
    		if ( is_home() || is_front_page() ) {
    			$string = get_bloginfo( 'name' ) . ' — ' . get_bloginfo( 'description' );
    		} elseif ( is_post_type_archive() ) {
    			$string = get_queried_object()->label;
    		} elseif ( is_archive() ) {
    			$string = get_queried_object()->name;
    		} else {
    			$string = get_the_title();
    		}
    	}
    
    	return $string;
    
    }
    
    
    // Описания
    function get_seo_instead_description() {
    
    	$string = '';
    
    	if ( is_single() ) $string = get_the_excerpt();
    
    	if ( $string == '' ) {
    		$string = 'Какое-то дефолтное описание для всех страниц, если его нет';
    	}
    
    	return $string;
    
    }
    
    // Регистрируем переменные
    function register_custom_yoast_variables() {
    	wpseo_register_var_replacement( '%%InsteadTitle%%', 'get_seo_instead_title', 'advanced', 'Some instead title text' );
    	wpseo_register_var_replacement( '%%InsteadDescription%%', 'get_seo_instead_description', 'advanced', 'Some instead title text' );
    }
    
    // Add action
    add_action('wpseo_register_extra_replacements', 'register_custom_yoast_variables');
    Ответ написан
    Комментировать
  • Как добавить класс к ARTICLE, если он для отрывка (excerpt) Wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    В WordPress отрывки ничем не обернуты, это делает ваша тема. Функция the_excerpt() выводит отрывок, get_the_excerpt() получает для обработки. Плюс там есть несколько фильтров

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

    Если в теге <article> есть функция post_class(), то можно добавить класс через фильтр

    // добавляем классы для мероприятий
    add_filter( 'post_class', 'add_post_classes' );
    function add_post_classes( $classes ) {
    
    	if ( get_post_type() === 'event' ) {
    		$classes[] = 'article-event';
    	}
    
    	return array_unique( $classes );
    }
    Ответ написан
  • Почему не переводится время из UNIX на php?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    $string = '1629621000';
    $date = date( "F d Y h:i:s e o", $string );
    var_dump( $date ); // August 22 2021 08:30:00 UTC 2021
    Ответ написан
    Комментировать
  • Рассылка писем о новой записи Wordpress, какие есть бесплатные варианты?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Вы можете написать небольшой код, который при помощи функции mail() или wp_mail() будет отправлять сообщения. Но письма могут попадать в спам, нужно настраивать SMTP
    Ответ написан
    Комментировать
  • Как применить стили ко всем потомкам с заданным классом кроме последнего?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    .block {
    	margin-top: 0;
    	&:not(:last-child) {
    		margin-bottom: 40px;
    	}
    }
    Ответ написан
  • Для чего нужны CMS веб-разработчику?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    CMS нужна не столько разработчику, сколько заказчику. Заказчик, как правило, не умеет работать с кодом и ему нужна удобная система управления контентом на сайте

    Я бы советовал начать делать собственный сайт, а после него еще несколько. Работая над практическими задачами вы быстрее поймете как настраивать админ панель, какие плагины удобнее и наработаете базу своих часто используемых решений
    Ответ написан
    Комментировать