• Как настроить browsersync для wordpress?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Сделал я для себя такой шаблон.
    Создал папку gulp, она находится на одном уровне со всеми проектами.
    Захожу в ней и запускаю команду gulp.
    И теперь, при изменении файлов php, scss, css, js, браузер с задержкой в 2000ms перезагружается.
    Задержка нужна, так как я работаю в шторме и нужно запулить изменения на сервер.
    Вот содержимое gulpfile.js
    'use strict';
    
    let gulp = require('gulp'),
    	//css
    	// stylus = require('gulp-stylus'),
    	sass = require('gulp-sass'),
    	autoprefixer = require("gulp-autoprefixer"),
    	sourcemaps = require('gulp-sourcemaps'),
    	wait = require('gulp-wait'),
    	notify = require("gulp-notify"),
    	plumber = require("gulp-plumber"),
    	browserSync = require('browser-sync').create(),
    	replace = require('gulp-replace');
    
    let siteUrl = 'http://wc-estore.host1670806.hostland.pro/';
    let siteDir = '../wc-estore/';
    
    gulp.task("scss", function () {
    	return gulp.src(siteDir + 'assets/scss/my.scss')
    		// .pipe(plumber())
    		.pipe(sourcemaps.init())
    		.pipe(wait(500))
    		.pipe(sass({
    			outputStyle: 'expanded'
    		}).on('error', notify.onError(function (error) {
    			return 'An error occurred while compiling sass.\nLook in the console for details.\n' + error;
    		})))
    		.pipe(autoprefixer({
    			cascade: false
    		}))
    		.pipe(sourcemaps.write('.'))
    		.pipe(gulp.dest(siteDir + 'assets/css/'))
    		.pipe(browserSync.reload({stream: true}))
    		.pipe(notify("Change css"));
    });
    
    gulp.task("watch", function () {
    	gulp.watch(siteDir + 'assets/scss/**/*.scss', gulp.series('scss'));
    });
    
    gulp.task('browser-sync', function () {
    	browserSync.init({
    		proxy: {
    			target: siteUrl,
    			ws: true
    		},
    		reloadDelay: 2000
    	});
    	gulp.watch(siteDir + "**/*.php").on('change', browserSync.reload);
    	gulp.watch(siteDir + "**/*.css").on('change', browserSync.reload);
    	gulp.watch(siteDir + "**/*.js").on('change', browserSync.reload);
    });
    
    gulp.task('default', gulp.parallel('watch', 'browser-sync'));
    Ответ написан
    Комментировать
  • Почему не срабатывает ajax запрос в wordpress?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Нашел решение.
    У меня json не сработал, использовал html.
    jQuery.ajax({
    			type: 'POST',
    			url: search_form.url,
    			data: data,
    			dataType: 'html',
    			success: function (data) {
    				$('.search_form .search-result').html(data);
    			}
    		});


    И потом отфильтровал в functions.php и вывел
    add_action( 'wp_ajax_myaction', 'esp_search_ajax_action_callback' );
    add_action( 'wp_ajax_nopriv_myaction', 'esp_search_ajax_action_callback' );
    function esp_search_ajax_action_callback() {
    	/**
    	 * Проверяем нонсе из массива пости и из wp_localize script
    	 */
    	if(!wp_verify_nonce($_POST['nonce'], 'search-nonce')){
    		wp_die('Данные пришли с левого адреса');
    	}
    	$_POST = filter_input_array( INPUT_POST, FILTER_SANITIZE_STRING );
    	$args = [
    		'post_type' => ['post', 'product'],
    		'post_status' => 'public',
    		's' => $_POST['s'],
    	];
    
    	$query_ajax = new WP_Query($args);
    	?>
    	<?php if($query_ajax->have_posts()): ?>
    		<?php while($query_ajax->have_posts()): ?>
    			<?php $query_ajax->the_post(); ?>
    			<h3 class="title-search"><?php the_title(); ?></h3>
    		<?php endwhile; ?>
    		<?php wp_reset_postdata(); ?>
    	<?php endif; ?>
    
    <?php
        wp_die();
    }
    Ответ написан
    Комментировать
  • Почему не меняется размер изображения в woocommerce?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Я создал файл woocommerce/single-product/product-image.php, и скопировал содержимое с того же файла из плагина woocommerce.

    Внутри есть функция wc_get_gallery_image_html
    Я в functions.php создал другую функцию wc_get_gallery_image_html_custom и скопировал из оригинала содержимое.

    Это содержимое product-image.php:
    <div class="<?php echo esc_attr( implode( ' ', array_map( 'sanitize_html_class', $wrapper_classes ) ) ); ?>"
         data-columns="<?php echo esc_attr( $columns ); ?>" style="opacity: 0; transition: opacity .25s ease-in-out;">
    	<figure class="woocommerce-product-gallery__wrapper">
    		<?php
    		if ( $product->get_image_id() ) {
    			$html = wc_get_gallery_image_html_custom( $post_thumbnail_id, true );
    		} else {
    			$html = '<div class="woocommerce-product-gallery__image--placeholder">';
    			$html .= '<img src="'.get_the_post_thumbnail_uri($product->id, 'full').'" class="wp-post-image" />';
    			$html .= '</div>';
    		}
    		echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', $html, $post_thumbnail_id ); // phpcs:disable WordPress.XSS.EscapeOutput.OutputNotEscaped
    		do_action( 'woocommerce_product_thumbnails' );
    		?>
    	</figure>
    </div>


    А вот содержимое функции:
    function wc_get_gallery_image_html_custom( $attachment_id, $main_image = false ) {
    	$flexslider        = (bool) apply_filters( 'woocommerce_single_product_flexslider_enabled', get_theme_support( 'wc-product-gallery-slider' ) );
    	$gallery_thumbnail = wc_get_image_size( 'gallery_thumbnail' );
    	$thumbnail_size    = apply_filters( 'woocommerce_gallery_thumbnail_size', array(
    		$gallery_thumbnail['width'],
    		$gallery_thumbnail['height']
    	) );
    	$image_size        = apply_filters( 'woocommerce_gallery_image_size', $flexslider || $main_image ? 'woocommerce_single' : $thumbnail_size );
    	$full_size         = apply_filters( 'woocommerce_gallery_full_size', apply_filters( 'woocommerce_product_thumbnails_large_size', 'full' ) );
    	$thumbnail_src     = wp_get_attachment_image_src( $attachment_id, $thumbnail_size );
    	$full_src          = wp_get_attachment_image_src( $attachment_id, $full_size );
    	$alt_text          = trim( wp_strip_all_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) );
    	$image             = wp_get_attachment_image( $attachment_id, $full_size, false, apply_filters( 'woocommerce_gallery_image_html_attachment_image_params', array(
    		'title'                   => _wp_specialchars( get_post_field( 'post_title', $attachment_id ), ENT_QUOTES, 'UTF-8', true ),
    		'data-caption'            => _wp_specialchars( get_post_field( 'post_excerpt', $attachment_id ), ENT_QUOTES, 'UTF-8', true ),
    		'data-src'                => esc_url( $full_src[0] ),
    		'data-large_image'        => esc_url( $full_src[0] ),
    		'data-large_image_width'  => esc_attr( $full_src[1] ),
    		'data-large_image_height' => esc_attr( $full_src[2] ),
    		'class'                   => esc_attr( $main_image ? 'wp-post-image' : '' ),
    	), $attachment_id, $image_size, $main_image ) );
    	return '<div data-thumb="' . esc_url( $thumbnail_src[0] ) . '" data-thumb-alt="' . esc_attr( $alt_text ) . '" class="woocommerce-product-gallery__image"><a href="' . esc_url( $full_src[0] ) . '">' . $image . '</a></div>';
    }


    Я поменял image_size, на full_size
    5ef4652e79951346013014.png
    Ответ написан
    Комментировать
  • Почему не отображается страница товаров woocommerce?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Я создавал тему через underscores.me и не активировал чекбокс для woocommerce.
    Ответ написан
    Комментировать
  • Laradock SQLSTATE[HY000] [2002] No such file or directory?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Поменял в файле .env в laravel DB_HOST=mysql
    Ответ написан
    Комментировать
  • Какое можно выбрать решение для мини магазина на wordpress?

    serii81
    @serii81
    Я люблю phр...
    Я где-то год назад работал над небольшим магазином, только разрабатывал не я.
    Там автор тоже использовал скрипты вместо woocommerce.
    Я могу вам скинуть ссылку на архив.
    Вы можете установить себе на хостинг и посмотреть.
    Если хотите, напишите я вам скину свой телеграм.
    Ответ написан
    Комментировать
  • Как правильно запустить laravel на laradock?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Я нашел решение.
    В каталоге проектов, где находится директория laradock, я создал еще несколько проектов.
    И в конфигурационном файле проекта с ларавел, я оставил порт 80, а у остальных я прописал расширение example.
    Ответ написан
    Комментировать
  • Проблемы со входом на корпоративную почту яндекс, как решить?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Удалили пользователя и почту и создал другого пользователя с той же почтой и новым паролем.
    Ответ написан
    Комментировать
  • Как поменять загрузчик с gpt на mbr?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Я уже решил задачу может быть не совсем легальным способом. Сейчас опишу.
    Я написал выше, что на диск с ssd установил убунту. Так вот в ней я установил программу systemback для создания бэкапов. Еще эта программа умеет записывать систему, которая сейчас установлена, как образ на флешку, и потом эту же систему можно установить на другой пк. Там сохранятся все установленные программы, и файлы конфигурации, но не пользовательские файлы, хотя можно и их включить в бэкап, но тогда нужна будет использовать флешку с большим объемом. Но, я храню пользовательские файлы на отдельном разделе hdd диска, так как ssd если сломается, то данные оттуда уже не вытащить. Или храню на облаке.

    Так вот, эта программа, еще умеет копировать систему. Я скопировал систему с ssd на hdd, и указал, чтобы копировать и загрузчик тоже на диск hdd. В результате, при старте, система с hdd была на первом месте при загрузки, я с помощью grub-customizer настроил, чтобы на первом месте установилась система с диска ssd.

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

    Спасибо, что подключились.
    Вопрос для меня считаю решенным.
    Написано только что
    Ответ написан
    Комментировать
  • Почему открывается сайт на laravel?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Я решил проблему установив laradoc и потом уже в ней ларавел.
    Ответ написан
    Комментировать
  • Ошибка http wordpess при загрузке pdf файла, как решить?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Нашел я решение, это мой косяк.
    Я установил плагин для защиты all in one security, и там есть галочка 'не загружать файлы больше 10мб', вот ее я и поставил.

    Спасибо всем, кто постарался помочь.
    Ответ написан
    Комментировать
  • Как подключить facebook плагин на сайте wordpress?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Facebook чаты работают только с бизнес страницами.
    Ответ написан
    Комментировать
  • Есть ли в wordpress плагин веб чата, который работает одновременно с несколькими сайтами?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Установил jivosite, в настройках помог онлайн констультант, за что ему и спасибо.
    Ответ написан
    Комментировать
  • Почему вместо файла taxonomy-product_cat.php для отображения категорий используется page.php?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Нашел ответ.
    Дело в том, что не я начал разрабатывать этот сайт с нуля. До меня чудо-разработчкик установил woocommerce и настроил, но как-то по-своему.

    Прочитав эту статью https://delaemsait.info/integriruem-woocommerce-s-...
    я узнал, что нужно подключить woocommerce в functions.php.
    add_action('after_setup_theme', 'woocommerce_support');
    	function woocommerce_support()
    	{
    		add_theme_support('woocommerce');
    	}


    Понятно, что когда начинаешь разрабатывать тему с нуля, используешь шаблон от underscores.me, не забываешь ставить галочку woocommerce при инициализации темы на этом рессурсе, то данный код вставляется автоматически в файл functions.php.
    Ответ написан
    Комментировать
  • Как настроить плавный переход по якорным ссылкам на мультиязычном сайте?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Нашел замечательный плагин для wordpress, но есть и для jquery manos.malihu.gr/page-scroll-to-id-for-wordpress

    Пользуйтесь.
    Ответ написан
    Комментировать
  • Почему не выводится иконка fontawesome?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Эта иконка типа solid, для нее нужно задать
    font-weight: 900;

    Ответ нашел тут https://stackoverflow.com/questions/49685849/how-t...
    Ответ написан
    Комментировать
  • Почему я не могу запушить, склонированный репозиторий с bitbucket?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Нашел решение.
    Дело в том, что bitbucket сделали возможность добавлять ключи к репозиториям, хотя, я не понимаю, зачем это нужно?
    Вот я на этом и попался.
    Добавил ключ к аккаунту и проблема исчезла.
    Ответ написан
    Комментировать
  • Почему не работает форма contact form 7 и magnific popup?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Мое решение плагин https://ru.wordpress.org/plugins/easy-modal/
    Ответ написан
    Комментировать
  • Сломалась тема на wordpress, как вернуть все назад?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Все, сделал.
    Оказывается в шапке пропали два закрывающейся тегов.
    Остается гадать почему они пропали?
    Главное, что работает.
    Этот урок на долго запомню.
    Ответ написан
  • Почему instance в виджете worpdress равен null?

    serii81
    @serii81 Автор вопроса
    Я люблю phр...
    Нашел ответ.
    В методе update мы должны прогонять все значения из new_instance и заодно проверять. Вот как тут:
    // Сохранение настроек виджета (очистка)
    	function update( $new_instance, $old_instance ) {
    
    		$instance = array();
    		$instance['title'] = ( !empty( $new_instance['title'] ) ) ? ( $new_instance['title'] ) : '';
    		$instance['count'] = ( !empty( $new_instance['count'] ) ) ? strip_tags( $new_instance['count'] ) : '5';
    
    		return $instance;
    	}
    Ответ написан
    Комментировать