Задать вопрос
  • Посчитать кол-во категорий в loop (archive)?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    К чему такие, сложности, если вы можете использовать псевдокласс :nth-child(N)

    Но если нужно прям на php, то можете использовать следующий пример для любого цикла:

    $val = 1;
    foreach ( $array as $array_value ) {
    	if( $val%2 == 0 ) {
    		var_dump('Это четный элемент');
    	} else {
    		var_dump('Это НЕчетный элемент');
    	}
    	$val++;
    }
    Ответ написан
  • Как спарсить сайт с последующим переводом на другой язык?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    Я тоже думал как это реализовать, но в целом задача выглядит не супер сложной. Допустим, если получить из текста все теги <p>, то мы можем ->innertext заменить переводом, после чего у нас в переменной $html будет уже переведенный текст

    $paragraphs = $html->find( 'p' );
    foreach ( $paragraphs as $key => $paragraph ) {
    	$paragraph->innertext = get_translate($paragraph->innertext);
    }


    Конечно, абзацы могут содержать инлайновые теги типо <span>, <strong> и хуже всего <a>. С ними сложнее, но если знать в каком точно формате их переводит переводчик, то регуляркой можно заменить обратно

    Что касается api переводчиков, то они вроде все платные, но с настройкой по документации не должно возникнуть много проблем. Кстати, в мае Яндекс запустили новый сервис Yandex Translate с переводом на нейронках. Стоит это 45 руб. за 100к. символов. Стоит тестить, я считаю
    Ответ написан
    Комментировать
  • Как привязать форму обратной связи к wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Это работает так же как и не в вордпресс. Указываете путь к обработчику, там собираете письмо и отправляете с помощью функции mail(). Можете использовать нативную функцию wp_mail()

    Еще проще - использовать плагины типо Contact form 7 или Gravity Forms. Они настраиваются визуально

    Учитывайте, что cf7 добавляет стили для форм на все страницы. Тут решение, как оставить их только там, где есть формы
    Ответ написан
  • Как отфильтровать комментарии по годам и вывести кнопки с кол-ом ком-ев за год?

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

    $commentYear = (int) '2014'; // первый год комментариев
    
    // запускаем цикл до текущего года
    while ( $commentYear <= date('Y') ) {
    	
    	$comments = get_comments( array( 
    		'orderby' => 'date',
    		'status' => 'approve',
    		'order' => 'DESC',
    		'date_query' => array(
    			array(
    				'year' => $commentYear
    			)
    		)
    	) );
    
    	if ( $comments ) {
    		// пишем вывод
    	}
    
    	$commentYear++;
    }


    Тут мы просто устанавливаем стартовый год и в цикле получаем все до текущего включительно

    Скорее всего ваши кнопки это совсем не кнопки, а просто табы и при клике переключают контентные блоки с комментариями. Теперь вам достаточно найти любой удобный вам скрипт с табами и собрать две переменные - с кнопками и с контентом и вывести их
    Ответ написан
    3 комментария
  • Как сделать такой блок в Wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Можете сделать отдельную категорию или зарегистрировать свой тип записи "Филиалы" с помощью register_post_type()
    Ответ написан
  • Не выводится дата в посте?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Чтобы работали get_the_date() и the_time() должна быть определена переменная $post. Чтобы ее определить нужно получать посты из базы с помощью wp_query() или get_posts() и установить ее в цикле с помощью setup_postdata($post)

    Что такое getNews() у вас я не знаю, а писать переменные кириллицей моветон
    Ответ написан
    2 комментария
  • Как правильно реализовать такую верстку?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    Посмотрите slick slider, подойдет пример Slider Syncing или, например owlcarousel, этот пример
    Ответ написан
    Комментировать
  • Как в страницах ворпресс в шапке настроить вывод постов?

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

    Для вывода шаблона записи по умолчанию используется single.php, а для любой таксономии или рубрики archive.php. Подробнее см. иерархию шаблонов

    Если вы захотите получить записи, например, из определенной рубрики для вывода на главной или где-то еще, воспользуйтесь функцией wp_query() или get_posts(), а чтобы получить термины, используйте функцию get_terms()
    Ответ написан
    1 комментарий
  • Сайдбар с прокруткой новостей. Как сделать?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Если любому блоку задать свойство overflow-y: auto и ограничить его высоту, например max-height: 500px, то у блока появится полоса прокрутки
    Ответ написан
    Комментировать
  • Как правильно указать путь картинки?

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

    2. Можете сделать шорткод, куда будете передавать путь и alt, например [image path="/img/reviews/woman.png" alt="девушка с блокнотом"], а на выходе получать нужный вам html

    3. Можете включить поддержку php в редакторе, но это плохая практика и дыра в безопасности
    Ответ написан
    2 комментария
  • Как включить произвольные поля поля в админке вордпресс?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Можете использовать плагины ACF/Carbon fields
    Ответ написан
    6 комментариев
  • Как вывести посты относительно даты поля acf?

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

    add_action( 'pre_get_posts', 'skill_pre_get_posts', 1 );
    if ( ! function_exists( 'skill_pre_get_posts' ) ) {
    	function skill_pre_get_posts( $query ) {
    		// Выходим, если это админ-панель или не основной запрос
    		if( is_admin() || !$query->is_main_query() )
    			return;
    
    		if( $query->is_post_type_archive('event') ) {
    			$query->set( 'meta_key', 'date' );
    			$query->set( 'orderby', 'meta_value_num' );
    			$query->set( 'order', 'ASC' );
    		}
    
    	}
    }
    Ответ написан
    Комментировать
  • Как скопировать страницу с картинками на Wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Еще вариант - получать контент по cURL, парсить любой библиотекой типо Simple HTML Dom Parser, инсертить нативными функциями wp_insert_post() и wp_insert_attachment()
    Ответ написан
    Комментировать
  • Как обновить кеш на сайте, в случае внесения новых изменений?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    Поменяйте версию файла в функции wp_enqueue_style(), 4 параметр. Тогда браузер пользователя скачает новый файл
    Ответ написан
    Комментировать
  • Как получить записи с бд вордпрес в другой проект?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Связи между таксономиями находятся в таблице wp_term_relationships
    Ответ написан
    Комментировать
  • Как правильно сделать счетчик постов на Wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    У вас явно где-то нарушена логика, не должно быть так много тяжелых запросов. В качестве промежуточного решения вы можете использовать get_posts(), чтобы не перезаписывать глобальную переменную $post и получать только id постов, чтобы сократить запрос:

    $objcount = get_posts( array(
    	'numberposts' => -1,
    	'post_type' => array( 'apartment', 'exclusive-objects' ),
    	'fields' => 'ids',
    	'meta_query' => array(
    		array(
    			'key' => 'realtor-id',
    			'value' => get_the_ID(),
    			'compare'	=> '='
    		)
    	)
    ) );
    
    echo count($objcount);


    Но по хорошему вам нужно переписать ту часть, где добавляется объект, чтобы в мету риелтора сохранялись прикрепленные объекты
    Ответ написан
  • Наставничество для создания своего сайта: неужели только платные варианты?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    Я бы на вашем месте поискал наставника самостоятельно. Здесь, на behance, в телеграм-чатах найдите несколько человек, чьи работы вам действительно нравятся и того уровня, которого вы хотите добиться и просто напишите им просьбу о помощи

    Да, кто-то вам ответит, что его/ее консультации платные, но в основном людям нравится, когда их считают экспертами и ценят мнение, поэтому, я уверен, что большинство вам поможет советом совершенно бесплатно

    Крайне желательно иметь сформулированный список вопросов, а на дизайн и фронтенд лучше искать разных людей
    Ответ написан
    Комментировать
  • Что нужно знать чтобы посадить готовый сайт на CMS?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Раз вопрос касается WordPress, то вам необходимо знать php и ориентироваться в шаблонах и нативных функциях WP
    Ответ написан
    Комментировать
  • Как создать несколько front-page в Wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Вы можете сделать несколько нужных вам опций в кастомайзере или acf, а во front-page простой условной логикой if () { ... } else { ... } выводить разный дизайн

    Или можете в корне темы создать несколько шаблонов вида {custom-page-template}.php, в комментариях должно быть указано название:

    <?php
    /*
    Template Name: Мой шаблон страницы
    */
    ?>


    Теперь его можно будет выбрать при редактировании страницы

    5faca37f2a0f2710187814.png
    Ответ написан
    Комментировать
  • Вывод записи из таксономии?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    'tax_query' — это обычный массив, вы можете добавлять в него значения в зависимости от существования переменных $_POST

    $args = [
    	'post_type' => 'goods',
    ];
    
    if ( !empty($_POST['color']) && !empty($_POST['category']) ) {
    	$args['tax_query'] = [
    		'relation' => 'AND',
    		[
    			'taxonomy' => 'color',
    			'field'    => 'slug',
    			'terms'    => $_POST['color']
    		],
    		[
    			'taxonomy' => 'category',
    			'field'    => 'slug',
    			'terms'    => $_POST['category']
    		]
    	];
    } elseif( !empty($_POST['color']) || !empty($_POST['category']) ) {
    	if ( !empty($_POST['color']) ) {
    		$args['tax_query'] = [
    			[
    				'taxonomy' => 'color',
    				'field'    => 'slug',
    				'terms'    => $_POST['color']
    			]
    		];
    	} else {
    		$args['tax_query'] = [
    			[
    				'taxonomy' => 'category',
    				'field'    => 'slug',
    				'terms'    => $_POST['category']
    			]
    		];
    	}
    }
    
    $query = new WP_Query( $args );


    Кстати, 'category' это зарезервированная таксономия для записей. Если вы пользуетесь woocommerce, то там таксономии называются 'product_cat'. Возможно поэтому ваш код и не работает
    Ответ написан
    2 комментария