<?php
function isBot(){
/* Эта функция будет проверять, является ли посетитель роботом поисковой системы */
$bots = array(
'rambler','googlebot','aport','yahoo','msnbot','turtle','mail.ru','omsktele',
'yetibot','picsearch','sape.bot','sape_context','gigabot','snapbot','alexa.com',
'megadownload.net','askpeter.info','igde.ru','ask.com','qwartabot','yanga.co.uk',
'scoutjet','similarpages','oozbot','shrinktheweb.com','aboutusbot','followsite.com',
'dataparksearch','google-sitemaps','appEngine-google','feedfetcher-google',
'liveinternet.ru','xml-sitemaps.com','agama','metadatalabs.com','h1.hrn.ru',
'googlealert.com','seo-rus.com','yaDirectBot','yandeG','yandex',
'yandexSomething','Copyscape.com','AdsBot-Google','domaintools.com',
'Nigma.ru','bing.com','dotnetdotcom'
);
foreach($bots as $bot)
if(stripos($_SERVER['HTTP_USER_AGENT'], $bot) !== false){
return true;
}
return false;
}
if( isBot() ) { ?>
// script для ботов
<?php } else { ?>
window.onload = function() {
setTimeout(() => {
// script с задержкой
},3000);
}
<?php } ?>
[...document.querySelectorAll('.services-list')].forEach(item => {
item.slick('refresh');
});
add_filter('excerpt_length', function(){
// Для постов с рубрикой 1
if (in_category(1)) {
return 100;
}
// Для постов с рубрикой 2
if (in_category(2)) {
return 50;
}
// Значение по умолчанию
return 25;
});
the_content
обычной заменой или регуляркой, но это если у картинок всегда одна структура (например, мы точно знаем что тег будет <img src="..." class="..." ...
). Но вообще парсить html регулярками не самая светлая мысль - для этого есть DOMDocument:function add_class_to_images( $content )
{
$document = new DOMDocument();
libxml_use_internal_errors(true); // чтобы не ругался на семантические HTML5 теги
$document->loadHTML( $content );
libxml_clear_errors();
$images = $document->getElementsByTagName( 'img' );
/** @var \DOMElement $image */
foreach ( $images as $image ) {
$image->setAttribute(
'class',
$image->getAttribute( 'class' ) . ' my-new-class'
);
}
return $document->saveHTML();
}
add_filter( 'the_content', 'add_class_to_images' );
vertical: true,
map.panTo(...).then(() => map.setZoom(...))
myMap.geoObjects.events.add('click', function (e) {
var targetObject = e.get('target');
// . . .
}
, определяете координаты клика и ближайший к ним балун. Центрируете и масштабируете карту как вам надо. Примеров навалом на самом Яндексе (от самих разработчиков Я-карт), можно собрать то, что вам нужно даже не разбираясь глубоко в теме. <div id="buttons"></div>
<div id="map"></div>
const items = [
{ coord: [ 55.751244, 37.618423 ], title: 'Moscow' },
{ coord: [ 48.864716, 2.349014 ], title: 'Paris' },
{ coord: [ 34.052235, -118.243683 ], title: 'Los Angeles' },
];
ymaps.ready(function () {
const map = new ymaps.Map('map', {
zoom: 9,
center: items[Math.random() * items.length | 0].coord,
});
items.forEach(n => map.geoObjects.add(new ymaps.Placemark(n.coord)));
const buttons = document.querySelector('#buttons');
buttons.innerHTML = items.map((n, i) =>
`<button data-index="${i}">${n.title}</button>`
).join('');
buttons.addEventListener('click', ({ target: { dataset: { index } } }) => {
if (index) {
map.setCenter(items[index].coord);
}
});
});
Может дело в том, что на главной одна шапка, а на остальных страницах используется у меня другая?
event.preventDefault()
var fired = false;
window.addEventListener('scroll', () => {
if (fired === false) {
fired = true;
setTimeout(() => {
// Здесь все эти тормознутые трекеры, чаты и прочая ересь,
// без которой жить не может отдел маркетинга, и которые
// дико бесят разработчиков, когда тот же маркетинг приходит
// с вопросом "почему сайт медленно грузится, нам гугл сказал"
}, 1000)
}
});