• Как вывести два сайдбара на одной странице??

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

    • Функции wp_mobile() нет, есть wp_is_mobile()
    • С этой функцией все равно не работают большинство плагинов кеширования
    • Стилизацию сайта на мобильной и десктопной версии лучше делать с помощью медиа-запросов в css, тем более у вас сайдбары визуально даже не отличаются
    • С Woocommerce лучше работать с помощью системы хуков и фильтров и только в последнюю очередь изменять шаблоны в теме
    Ответ написан
  • Почему при клике на пользователя меня перебрасывает не на личную страницу?

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

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    404 у вас не из-за этого, эта опция не влияет на кастомные запросы WP_Query(). Скорее всего вы не правильно выводите пагинацию на странице. Приложите весь код или сделайте по этому гайду
    Ответ написан
  • Как wp_insert_post добавить созданный запись к определённой категории?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Для таксономий нужно использовать 'tax_input', а не 'post_category'

    $post_data = array(
    	'post_type' => 'proconnect',
    	'post_title' => 'testPost',
    	'post_status' => 'publish',
    	'post_author' => 1,
    	'tax_input' => array( 'taxonomy_name' => array( 'term', 'term2', 'term3' ) ),
    );
    $post_id = wp_insert_post( $post_data );
    Ответ написан
    Комментировать
  • Легально ли делать подобные сайты, какие будут последствия?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    Вы можете подсмотреть как легально сделаны сайты табачных компаний (или алкогольных)
    Ответ написан
    Комментировать
  • Best practices при расчете периодических/повторяющихся событий?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    Эти данные можно вообще не хранить, с помощью strtotime() можно указывать относительные форматы даты/времени

    // первый день этого месяца
    echo gmdate('F j, Y', strtotime( 'first day of this month') ); // August 1, 2021
    
    // последний день декабря текущего года
    echo gmdate('F j, Y', strtotime( 'last day of december this year' ) ); // December 31, 2021
    
    // понедельник на следующей неделе
    echo gmdate('F j, Y', strtotime( 'Monday next week' ) ); // August 16, 2021
    
    // следующий четверг
    echo gmdate('F j, Y', strtotime( 'next Thursday' ) ); // August 19, 2021
    
    // второй четверг этого месяца
    echo gmdate('F j, Y', strtotime( 'second thursday of this month' ) ); // August 12, 2021
    
    // +10 дней к дате
    echo gmdate('F j, Y', strtotime( '10 September 2000 + 10 days') ); // September 20, 2000
    Ответ написан
    Комментировать
  • Почему при редиректе выдаёт 404?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    404 означает, что по данному адресу страницы не существует

    6116349b20137868964400.png
    Ответ написан
    Комментировать
  • Как изменить url первой страницы пагинации Wordpress?

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

    • Ищешь в коде функцию, которая выводит пагинацию, разбираешься принимает ли она аргументы, позволяющие ее кастомизировать
    • Если нет, на ее основе пишешь свою пагинацию так, как тебе надо
    • Ставишь тег canonical
    • Ставишь 301 редирект


    PS. Кнопки Первая 1 выглядят бредово
    Ответ написан
    Комментировать
  • Как вывести метаполя на странице автора, если ему присвоена определенная роль?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    if ( is_user_role( 'custom_role' ) ) {
    	echo '<p>' . get_user_meta( get_current_user_id(), 'custom_meta', true )  . '</p>';
    }
    Ответ написан
    Комментировать
  • Как корректно для SEO Повысить уровни вложенности страниц в WP?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    Если адреса у страниц меняются, то для SEO корректно делать 301 редиректы со старых адресов на новые
    Ответ написан
    Комментировать
  • Какие есть бесплатные сервисы/плагины/скрипты рассылки email для wordpress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Есть решение на хуке save_post отправлять функцией wp_mail(). Обязательно настроить SMTP. Обязательно писать в мету адреса, кому письмо уже отправлено и перед отправкой проверять, чтобы при обновлении не присылать дважды-трижды одно и то же
    Ответ написан
    Комментировать
  • Плагин массового создания записей для Wordpress есть?

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

    А если у вас есть csv или другой табличный формат данных, то можно воспользоваться платным плагином WP All Import
    Ответ написан
    Комментировать
  • Нужно привязать к кнопке функция изменение главной страницы и меню, как сделать лучше?

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

    Тем не менее вот пример, как можно добавить кнопку в админ бар

    add_action('admin_bar_menu', 'add_season_switcher_item', 100);
    function add_season_switcher_item( $admin_bar ){
    	global $pagenow;
    	$admin_bar->add_menu( array( 'id'=>'season-switcher','title'=>'Season Switcher','href'=>'#' ) );
    }


    А это пример, как можно вывести обработчик для этой кнопки

    add_action( 'admin_footer', 'season_switcher_js' );
    function season_switcher_js() { ?>
    	<script type="text/javascript" >
    		jQuery("li#wp-admin-bar-season-switcher .ab-item").on( "click", function() {
    
    			// код тут
    
    		});
    	</script> <?php
    }
    Ответ написан
  • Как в плагине пройтись по всем постам?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Любой запрос get_posts() или wp_query(), в цикле проверяете то, что вам нужно

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

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

    function add_theme_scripts() {
    	if ( is_home() || is_front_page() ) {
    		wp_enqueue_style( 'slyle-home', get_theme_file_uri( 'assets/css/slyle-home.min.css' ) );
    	} else {
    		wp_enqueue_style( 'slyle-page', get_theme_file_uri( 'assets/css/slyle-page.min.css' ) );
    	}
    }
    add_action( 'wp_enqueue_scripts', 'add_theme_scripts' );


    Подробнее об этом в статье: Как правильно подключать стили и cкрипты в WordPress?
    Ответ написан
    Комментировать
  • Нужно заменить картинку на другую?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    return set_post_thubmnail( $post, $thumbnail_id );

    Разумеется в эту функцию должны попадать все данные $has_thumbnail, $post, $thumbnail_id

    Еще вариант - при выводе проверять наличие прикрепленного изображения и подменять на дефолтное, если его нет

    if ( has_post_thumbnail() ) {
    	$image = get_the_post_thumbnail_url( get_the_ID(), 'large' );
    } else {
    	$image = get_stylesheet_directory_uri() . '/assets/img/default-cover.jpg';
    }
    Ответ написан
  • Как подставлять разные страницы на разных языках?

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

    if ( is_plugin_active( 'polylang/polylang.php' )  ) {
    	$locale = get_locale();
    	$data = [
    		'pl_PL' => [
    			'text' => 'Pobierz<br>katalog',
    			'file' => 'price-pl.xlsx',
    		],
    		'lt_LT' => [
    			'text' => 'Parsisiųsti<br>katalogą',
    			'file' => 'price-lt.xlsx',
    		],
    		'en_US' => [
    			'text' => 'Download<br>catalog',
    			'file' => 'price-en.xlsx',
    		],
    	];
    
    	echo '<div class="catalog-file">';
    	   echo '<a href="' . get_stylesheet_directory_uri() . '/data/' . $data[$locale]['file'] . '" download="' . $data[$locale]['file'] . '">' . $data[$locale]['text'] . '</a>';
    	echo '</div>';
    }


    PS Перед выводом файла уместно сделать проверку на его существование

    if ( file_exists( $file ) && filesize( $file ) > 0  ) {
    	// выводим, если существует
    }
    Ответ написан
    Комментировать
  • Как отстилизовать страницу в WordPress?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    В WordPress для этого регистрируются типы записей и таксономии к ним с помощью функций register_post_type() и register_taxonomy() соответственно. Эта регистрация может осуществляться в теме или в плагинах

    Чтобы стилизовать страницы произвольного типа вы можете создать в корне темы шаблон single-service.php, тут подробнее. Вы так же можете использовать проверку if ( get_post_type() === 'service' ) { ... } в любом месте проекта (где определены глобальные переменные)

    А чтобы добавить выбор шаблона, вы должны при его создании перечислить пост тайпы, к которым он относится примерно так:

    /*
    Template Name: Мой шаблон страницы
    Template Post Type: post, page, service
    */
    Ответ написан
    Комментировать
  • Почему выводится товар три раза?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    У вас три раза выводится вот этот кусок

    echo '
          <div class="swiper-slide">
          <a href="#">
            <div class="product-slide">
              <div class="product-hearth"><svg class="product-global__hearth"><use xlink:href="img/sprite.svg#hearth-icon"></use></svg></div>
              <div class="product-slide-img"><img src="img/product-img.jpg" alt="" class="product-slide__img"></div>
              <div class="product-global__footer">
                <p class="product-global__autor">Ольга Примаченко</p>
                <h3 class="product-global__title">К себе нежно</h3>
                <div class="product-global__interface">
                  <div class="product-global__price">790</div>
                  <div class="product-global__cart"><svg class="product-global__cart"><use xlink:href="img/sprite.svg#cart-icon"></use></svg></div>
                </div>
              </div>
            </div>
          </a>
          </div>
        ';


    Нужно динамически брать из цикла $loop заголовок, ссылку, изображение, цену и автора используя функции the_title(), the_post_thumbnail(), the_permalink() и т.д.

    А еще правильнее использовать wc_get_template_part( 'content', 'product' );. Советую найти этот шаблон, разобрать и переделать ваш код по спецификации woocommerce

    global $product; и return ob_get_clean(); из вашего кода можно смело удалить, а проверку if ( $loop->have_posts() ) { ... } добавить
    Ответ написан
  • Как изменить ЧПУ GUID на читабельный?

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

    Структура ссылок задается в настройках Настройки → Постоянные ссылки. Получить ссылку можно по id поста в цикле с помощью get_permalink()
    Ответ написан
    Комментировать