Задать вопрос
  • Что творится со всеми сайтами на моём компьютере?

    @alex1478
    Это без блокировщиков рекламы?
    ublock как раз блокирует часть запросов подменой CORS.
    Ответ написан
    3 комментария
  • Что творится со всеми сайтами на моём компьютере?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Блокировка аналитики Яндекса и Гугла.
    Радоваться надо
    Ответ написан
    Комментировать
  • Что творится со всеми сайтами на моём компьютере?

    Adamos
    @Adamos
    Смените блокировщик на нормальный, который просто не загружает эти скрипты, а не блокирует их соединения.
    АдБлок у меня на Тостере блокирует, кроме соцсетей и рекламы Тостера:
    https://www.google-analytics.com/analytics.js
    https://mc.yandex.ru/metrika/watch.js
    https://adservice.google.ru/adsid/integrator.js?domain=toster.ru
    https://adservice.google.com/adsid/integrator.js?domain=toster.ru
    https://securepubads.g.doubleclick.net/gpt/pubads_impl_2019100301.js
    https://static.criteo.net/js/ld/publishertag.js
    Ответ написан
    Комментировать
  • Чего не хватает в коде создания канваса?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    Раз используется p5.js, то было бы логично взять функцию clear и в начале рисования кадра анимации очищать canvas:
    function draw() {
        clear();
        // . . .
    }
    Ответ написан
    4 комментария
  • Как сделать колонки одинаковой высоты в Bootstrap3?

    @proskurninra
    Решение тут css.yoksel.ru/flexbox

    Я сделал и у меня решилась подобная проблема.
    Для этого я в css создал класс row-flex
    .row-flex {
        display: flex;
        flex-flow: row wrap;
    }

    и в html применил класс row-flex
    <div class="container-fluid">
        <div class="row row-flex">
            <div class="col-lg-3 col-md-4 col-sm-6 col-xs-12">
                ... содержимое блока ...
            </div>
        </div>
    </div>

    всё работает!
    Ответ написан
    3 комментария
  • Почему скрипт работает не корректно, в чем ошибка?

    1Sergey1
    @1Sergey1
    попробуйте
    if (checkWidth >= 901)
    else if (checkWidth <= 900)

    + попробуйте запускать функцию mobileне по событие resizeа сразу при загрузке страницы
    mobile()
    Ответ написан
    Комментировать
  • Почему скрипт работает не корректно, в чем ошибка?

    slii
    @slii
    Потому что вы вызываете функцию mobile() , только при resize - изменении экрана.
    После jQuery(document).ready(function () { пропишите mobile(); - это должно решить проблему
    Ответ написан
    1 комментарий
  • Где ошибка в скрипте?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    За смену текста у Вас отвечает
    $('.spoiler-title').html('Скрыть текст');
    он срабатывает 1 раз при загрузке и только если в момент загрузки элемент с классом spoiler-body имеет еще и класс opened.
    Если хотите, что бы этот код работал еше когда-то - то надо вставить его в функцию, которая сработает по какому-то событию. Например по клику:
    $('.spoiler-title').on('click',function(){
        $('.spoiler-title').html('Скрыть текст');
    });
    Ответ написан
    Комментировать
  • Как задать карточке товара woocommerce свой title?

    jimmykoks
    @jimmykoks
    Можно использовать произвольное поле. В моём случае это плагин ACF.
    Создаем поле 'title-product'.
    В файле темы header.php заменить существующую строку
    <title><?php wp_title( ‘|’, true, ‘right’ ); ?></title>
    (у меня она под номером 43) на:
    <?php
    	if(is_single()){ /* Если это товар*/
    		if(get_field('title-product')){ /* Если поле заполнено */ ?>
    			<title><?php the_field('title-product'); /* Показать значение поля */ ?></title>
    		<?php }
    		else { /* Если поле не заполнено */ ?>
    			<title><?php> wp_title( '|', true, 'right' ); /* Показать стандартный тайтл */ ?></title>
    		<?php }
    	}
    	else { /* Если это не товар */ ?>
    		<title><?php wp_title( '|', true, 'right' ); /* Показать стандартный тайтл */ ?> </title>
    	<?php }
    	?>

    Результат:
    Если поле заполнено, то в тайтл запишется его значение, если нет, то покажется дефолтный тайтл из названия товара.
    Ответ написан
    Комментировать
  • Как отключить OWL carusel для определённого размера и можно ли?

    @Haoss
    html-верстальщик
    всмысле вообще? ВООБЩЕ, т.е только до 768, или с 768 до 992 не работал, или что-то еще?
    Ответ написан
    7 комментариев
  • Как настроить пагинацию к WP_Query с чпу?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Ссылка на статью- dimox.name/wordpress-pagination-without-a-plugin
    Сам регулярно использую.
    Ответ написан
    4 комментария
  • Как вывести метки на яндекс карту взяв адреса из кастомных полей записей?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Нечто похожее нам приходилось реализовать для одного клиента.
    Единственное отличие - метка добавляется не из катомных записей, а на конкретной странице, на которой при помощи ACF Repeater созданы кастомные поля.
    Краткая инструкция:
    1) Создайте поле ACF Repeater + 2 кастомных поля Широта и Долгота и выведите на странице
    2) При помощи яндекс карт (https://yandex.ru/maps/) клиент находит координаты объекта и прописывает его через repeater в кастомные поля Широта и Долгота.
    3) Создайте шаблон (скопируйте page.php) и назначьте его для созданной вами страницы.
    Пример подобного шаблона:
    В данном коде присутствует лишний код. Но думаю, что вы найдете необходимые участки...
    Пример шаблона
    <div class="container content-page">
    		<div class="page-content">
    			<div class="row">
    				<div class="content col-md-12">
    					<div id="customMap" class="YMaps" style="width:100%;height:400px;">
    					</div>
    					<?php if( have_rows('example_mebel') ): ?>
    						<?php $yamap = [];?>
    						<?php while( have_rows('example_mebel') ): the_row(); ?>
    							<!-- baloon content -->
    							<?php $example_title = get_sub_field('example_title') ?>
    							<?php $example_address = get_sub_field('example_address') ?>
    							<?php $example_phone = get_sub_field('example_phone') ?>
    							<?php $example_time = get_sub_field('example_time') ?>
    							<?php 
    
    	$example_placemark_type = array
    	("twirl#darkgreenStretchyIcon","twirl#greenStretchyIcon"); 
    
    								// $example_placemark_type = array("twirl#redIcon", "twirl#darkblueIcon", "twirl#pinkIcon", "twirl#darkorangeIcon", "twirl#violetIcon"); 
    							?>
    							<!-- baloon content -->
    							<?php $tempID = get_sub_field( 'example_id'); ?>
    							<?php $cityName = get_sub_field( 'example_city'); ?>
    							<?php if( have_rows('example_places') ): while( have_rows('example_places') ): the_row();  ?>
    								<?php $example_longitude = get_sub_field( 'example_longitude'); ?>
    								<?php $example_lattitude = get_sub_field( 'example_lattitude'); ?>
    								
    							
    							<!---->
    
    							<?php
    								array_push
    								(
    									$yamap,
    									[
    										"lat" => $example_lattitude,
    										"lon" => $example_longitude,
    										"header" => $example_title,
    										"address" => $example_address,
    										"time" => $example_time,
    										"footer" => $example_phone,
    										"placemark" => $example_placemark_type[array_rand($example_placemark_type)],
    										"id" => $tempID,
    										"city" => $cityName
    									]
    								);
    
    							?>
    								<?php endwhile; endif; ?>
    						<?php endwhile; ?>
    					<?php endif; ?>
    				</div>
    				<div style="padding: 10px 0 !important; clear: both;"></div>
    				<div class="content col-md-12">
    					<?php if( have_rows('example_mebel') ): ?>
    						<div class="example_accordion">
    							<div class="panel-group" id="accordion">
    
    						<?php while( have_rows('example_mebel') ): the_row(); ?>
    							
    							<!--example_places-->
    								<!-- begin object -->
    								
    										<!-- ** -->
    										<?php if ($example_title = get_sub_field('example_title')) { ?>
    											<?php ($example_id = get_sub_field('example_id')); ?>
    										
    
    										 
    											<div class="panel panel-default">
    											  <div class="panel-heading">
    												<h4 class="panel-title">
    												  <a data-toggle="collapse" data-parent="#accordion" href="#<?php echo $example_id ?>"><?php echo $example_title ?><?php if ($example_city = get_sub_field('example_city')) { ?><span style="float:right;"><?php echo $example_city  ?></span><?php } ?></a>
    												</h4>
    											  </div>
    											  <div id="<?php echo $example_id ?>" class="panel-collapse collapse">
    												<div class="panel-body">
    													<?php if ($example_address = get_sub_field('example_address')) { ?>
    														<div class="faq_answer"><span class="fa fa-map-marker"><?php echo $example_address ?></span></div>
    													<?php } ?>
    													<?php if ($example_time = get_sub_field('example_time')) { ?>
    														<div class="faq_answer"><span class="fa fa-clock-o"><?php echo $example_time ?></span></div>
    													<?php } ?>
    													<?php if ($example_phone = get_sub_field('example_phone')) { ?>
    														<div class="faq_answer"><span class="fa fa-phone"><?php echo $example_phone ?></span></div>
    													<?php } ?>
    													<?php if ($example_mail = get_sub_field('example_mail')) { ?>
    														<div class="faq_answer"><span class="fa fa-at"><?php echo $example_mail ?></span></div>
    													<?php } ?>
    													<div class="gallery">
    														<?php $images = get_sub_field('example_gallery');
    															if( $images ): ?>
    																<ul>
    																	<?php foreach( $images as $image ): ?>
    																		<li>
    																			<a href="<?php echo $image['url']; ?>">
    																				 <img src="<?php echo $image['sizes']['thumbnail']; ?>" alt="<?php echo $image['alt']; ?>" />
    																			</a>
    																		</li>
    																	<?php endforeach; ?>
    																</ul>
    														<?php endif; ?>
    													</div>
    												</div>
    												<div class="panel-footer">
    													
    												</div>
    											  </div>
    											</div>
    										  
    										<?php } ?>
    								
    								<!-- end object -->
    						<?php endwhile; ?>
    							</div>
    						</div>
    					<?php endif; ?>
    				</div>
    			</div><!-- end row-fluid -->
    		</div>
    	</div><!-- end container -->
    <?php echo "<script type=\"text/javascript\"> var points=".json_encode($yamap, true)."</script>" ?>;


    4) Далее подключите 2 скрипта для данной страницы:
    function register_scripts_map() {
    		wp_register_script('custom', get_stylesheet_directory_uri() .
    			'/js/custom.js');
    		wp_enqueue_script('custom');	
    		wp_register_script("yMapJS", "https://api-maps.yandex.ru/2.0/?load=package.full&lang=ru-RU");
    		wp_enqueue_script("yMapJS");
    }
    
    add_action('wp_enqueue_scripts', 'register_scripts_map');

    5) Содержимое скрипта custom.js
    custom скрипт
    var zoom = 16,
        // mapCenter = [55.709992,37.654287];
        // mapCenter = [points[0].lat, points[0].lon],
        referenceCity = ['Москва', 'Санкт-Петербург'],
        mapAlwaysReady = false;    
    var customMap,
        mapCenter;
    function showCurrentPlace(event)
    {
        event.preventDefault();
        var currentSelectedItem = jQuery(this).find('a').attr('href').substr(1),
        currentSelectedPoint = 
            points.filter(function(item){return item.id == currentSelectedItem;})[0];
        if(mapAlwaysReady)
        {        
            customMap.setCenter([currentSelectedPoint.lat, currentSelectedPoint.lon]);
            customMap.setZoom(zoom);
        }    
        console.table(currentSelectedPoint);
    }
    
    function getMinMax(sourceArray, field)
    {
        var maxPrice = Math.max.apply(Math, sourceArray.map(function(item){return item[field];})),
            minPrice = Math.min.apply(Math, sourceArray.map(function(item){return item[field];})) 
        return {max: maxPrice, min: minPrice};
    }
    function mapReady()
    {   
        customMap = new ymaps.Map('customMap', 
        {
            center: mapCenter,
            zoom: zoom
        });
    
        points.forEach(function(item)
        {
            customMap.geoObjects.add
            (
                new ymaps.Placemark
                (
                    [item.lat, item.lon], 
                    {
                        iconContent: item.header, 
                        balloonContentHeader: item.header, 
                        balloonContentBody: 
                            item.address + 
                            '<br>' +
                            item.time
                            , 
                        balloonContentFooter: item.footer
                    },
                    {
                        preset: item.placemark //"twirl#pinkStretchyIcon"
                    }
                )
            );    
        });
        mapAlwaysReady = true;    
        var tempBounds = points.reduce
        (
            function(prev, cur)
            {       
                // return referenceCity.filter(function(itemCity)
                // {
                //     return itemCity == cur.city;
                // }).length > 0 ? prev.concat({lat: cur.lat, lon: cur.lon}) : prev; 
                return prev.concat({lat: cur.lat, lon: cur.lon});
            }, 
            []
        ),
        referenceBounds = 
        {
            lats: getMinMax(tempBounds, 'lat'),
            longs: getMinMax(tempBounds, 'lon'),
        };
        customMap.setBounds
        (
            [
                [referenceBounds.lats.min, referenceBounds.longs.min], 
                [referenceBounds.lats.max, referenceBounds.longs.max]
            ]
        );
    }

    Конечный результат - https://massimomebel.com/gde-kupit
    Конечно же вам придется переделать скрипт, чтобы собирать метки из кастомных записей, а не со страницы. Но в целом идея похожа.
    Если вас устроит идея добавления маркеров на основе Google Maps, то тут подробная инструкция об интеграции с CPT https://wpbeaches.com/create-multiple-marker-map-f...
    Ответ написан
    4 комментария
  • Как задать карточке товара woocommerce свой title?

    an2studio
    @an2studio
    Во-первых, нужно скопировать файлы, которые будут правиться, из wp-content\plugins\woocommerce\templates\ в папку вашей темы themes/ваша_тема/woocommerce.
    Должно получится так:
    themes/ваша_тема/woocommerce/single-product/title.php - там увидите такой код:
    the_title( '<h1 class="product_title entry-title">', '</h1>' );

    Его можно заменить на такой код:
    echo esc_html('Купить ') . get_the_title() . esc_html(' за ') . $product->get_price_html() . esc_html(' рублей');
    Ответ написан
    2 комментария
  • Как исправить откат изменеий при обновлении кэша дополнений Opencart 2.3.0.2?

    zoozag
    @zoozag
    Opencart
    Модификаторы берут ваши файлы, вносят в них изменения согласно инструкции в xml файле модификатора и готовый файл записывается system/storage/modification
    Чтобы вам решить проблему, нужно либо поправить исходные файлы, путь до них внутри system/storage/modification совпадает с путем от корня сайта, либо менять xml файл модификатора.
    Ответ написан
    Комментировать