Тестирование темы WordPress, проверка в режиме отладки. Вредоносный код Wordpress проверить на вирусы

Проверяет отображается ли страница "постоянной страницы". Можно указать ID, ярлык или заголовок страницы для проверки. Условный тег.

Вернет true при передаче пустых значений

Будьте внимательны, потому что следующие вызовы этой функции вернут true:

Is_page("") is_page(0) is_page("0") is_page(null) is_page(false) is_page(array())

Нельзя использовать внутри Цикла WordPress

Из-за того что в при работе цикла переписываются некоторые глобальные переменные, is_page() не получится использовать внутри цикла. Впрочем, в этом нет необходимости. Чтобы использовать этот Тег шаблона после цикла, произвольный цикл (запрос на получение записей) надо сбросить функцией: wp_reset_query()

✈ 1 раз = 0.000012с = очень быстро | 50000 раз = 0.02с = скорость света | PHP 7.0.8, WP 4.6.1

Хуков нет.

Возвращает

true/false. true, если отображается тип страницы: постоянной страницы и false, если отображается любой другой тип страницы.

Использование if(is_page($page)){ //код } $page(строка/число/объект)

ID, ярлык, заголовок страницы, которую нужно проверить. Можно указать массив из любых этих значений, чтобы выставить на проверку несколько разных страниц.

По умолчанию: нет

Примеры #1 Функция в действии

Различные примеры использования - случаи когда функция возвращает true (срабатывает):

Is_page(); // Когда отображается любая постоянная страница. is_page(42); // когда отображается страница с ID 42. is_page("О сайте"); // Когда отображается страница с заголовком "О сайте". is_page("o-saite"); // Когда отображается страница со слагом "o-saite". is_page(array(42, "o-saite", "О сайте")); // Параметры можно комбинировать. Добавлено в версии 2.5. is_page(array("sample-page", "contacts", 23, 34)); // Можно проверять несколько страниц одновременно. Все указанные страницы разные...

#2 Заметка про кириллицу и ярлык (слаг)

Если у вас на сайте кириллица не меняется на латиницу - нет плагина Cyr-To-Lat или ему подобного, то при создании записи её ярлык изменяется и кириллица превращается в спец символы (контакты - %d0%ba%d0%be%d0%bd%d1%82%d0%b0%d0%ba%d1%82%d1%8b), поэтому при проверке нужно это учитывать. Т.е. если проверяется не заголовок, а ярлык (post_name), то делайте так:

Is_page("о-сайте"); // неправильно is_page(sanitize_title("о-сайте")); // правильно

#3 Проверка находимся ли мы на дочерней странице у постоянной страницы

В WordPress нет функции is_subpage() . Но такую проверку можно сделать таким кодом:

Global $post; // Если за пределами цикла if (is_page() && $post->post_parent) { // Это дочерняя страница } else { // Это не дочерняя страница }

Можно создать свою функцию is_subpage() . Добавьте такой код в файл темы functions.php . Она работает как же как первый пример: проверят является ли текущая страница дочерней, т.е. страница ли это вообще и есть ли у нее родительская страница.

Такую функцию полезно создавать, когда на сайте предполагается делать проверки как в примере 1 много раз.

/* * Проверят является ли текущая постоянная страница дочерней страницей * Возвращает true или false */ function is_subpage() { global $post; if (is_page() && $post->post_parent) { return $post->post_parent; } return false; }

Чтобы определить страницу "О сайте" или её дочернюю страницу, используйте этот пример. Этот пример может пригодится, когда нужно указать переменную для всей ветки страниц. Здесь мы укажем картинку для ветки:

If (is_page("about") || "2" == $post->post_parent) { // Это страница "О сайте" или её дочерняя страница $bannerimg = "about.jpg"; } elseif (is_page("learning") || "56" == $post->post_parent) { $bannerimg = "teaching.jpg"; } elseif (is_page("admissions") || "15" == $post->post_parent) { $bannerimg = "admissions.jpg"; } else { $bannerimg = "home.jpg"; // если мы на неопределенной странице, выведем картинку по умолчанию }

Создадим функцию, которая проверит все уровни вложенности, всю ветку подстраниц и если мы на одной из страниц ветки, то функция вернет true, в противном случае false. Т.е. предположим у нас есть страница "О нас" у нее есть дочерняя страница "Наши услуги", а у этой страницы есть еще дочерние страницы "Покраска" и "Отделка". В эту функцию передадим ID страницы "О нас" и она будет возвращать true если мы находимся на любой из указанных страниц:

/* * Проверка дочерних страниц по всем уровням вложенности * $pid = ID страницы все уровни дочерних страниц которой нужно проверить */ function is_tree($pid){ global $post; // если мы уже на указанной странице выходим if (is_page($pid)) return true; $anc = get_post_ancestors($post->ID); foreach ($anc as $ancestor) { if(is_page() && $ancestor == $pid) { return true; } } return false; }

#4 Проверка разделения страницы

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

$paged = $wp_query->get("paged"); if (! $paged || $paged < 2){ // Пост не разделен на страницы или это не первая страница. } else { // Это 2,3,4 ... страница разделенного поста. }

$paged = get_query_var("paged") ? get_query_var("paged") : false; if ($paged === false){ // Пост не разделен на страницы или это не первая страница. } else { // Это 2,3,4 ... страница разделенного поста. }

If (0 === get_query_var("page")) { // Пост не разделен на страницы или это не первая страница. } else { // Это 2,3,4 ... страница разделенного поста. }

В сети интернет можно встретить просто огромное количество разнообразных ресурсов с различными шаблонами и темами для wordpress, в большинстве случаев они бесплатны и в них можно встретить очень часто различные вирусы и прочий неприятный код, который будетплохо влиять на ваше seo, а также это может стать серьёзной угрозой вашего сайта. В выбранном вами шаблоне может также встретиться код рекламных ссылок различных бирж и вы даже не узнаете об этом, пока не проверите ваш шаблон на вирусы и прочий хлам, ведь большинство вредоносных ссылок будут закодированы и на глаз сразу не определишь, где именно расположен такой код.

Обычно такой левый код устанавливают в файлы index.php, footer.php но не стоит путать их с обычными ссылками, когда автор темы оставляет их открытыми и они видны при просмотре темы, вреда они никого не несут, вы можете просто их удалить или оставить, это уже вам решать. Единственное вам нужно будет их закрыть от индексации, чтобы лишний раз не привлекать внимание поисковиков, так как за ссылки сейчас очень сильно наказывают и понижают в выдаче, особенно если у вас молодой сайт.

Если вы уже более опытный вебмастер и разбираетесь в основах html и php, то обязательно после выбора и установки вашего шаблона на сайт проверьте основные файлы, для этого обычно используют программу «notepad» бывают случаи, что и там просто вставляют открытые ссылки, которые также абсолютно не нужны на вашем сайте и их в обязательном порядке следует удалить. Затем вам следует проверить вашу тему с помощью такого замечательного плагина как TAC (Theme Authenticity Checker) его функция заключается в поиске вредоносных ссылок и опасного кода, более того если у вас найдётся такая ссылка или код, то данный плагин в автоматическом режиме покажет вам этот код, чтобы вы без труда нашли его и удалили.

Проверяем и удаляем вредоносный код с помощью плагина tac

Для начала установим его к себе на сайт, для этого откройте меню «плагины-добавить новый» вписываем название и жмём установить. Жмём активировать и на этом установка будет завершена. Далее перейдите в меню «внешний вид-TAC»

После этого вы увидите все ваши темы и плагин вам выдаст информацию есть или нет в ваших шаблонах различные вредоносные вирусы или зашифрованный код, если всё впорядке то увидите надпись «Theme OK» это означает что плагин не нашёл что-то серьёзного. Как видно из снимка, тема оказалась абсолютно чистой и в ней нет даже простых статичных ссылок.

Если в вашем шаблоне присутствуют статические ссылки, то вы можете их увидеть, для этого нажмите «Detalis» и вы увидите код ссылок.

Вот так происходит проверка ваших шаблонов на вирусы, как видно из примера выше темы оказались без каких-либо лишних кодов, если на вашем шаблоне попадётся какой-либо зловредный код, то вы увидите красную надпись, после этого вам нужно будет в обязательном порядке пройтись по всем вредоносным файлам и полностью удалить выведенный плагином код.

Очень важно скачивать только темы с официальных сайтов, один из таких wordpress.org там вы найдёте качественные и чистые шаблоны для ваших сайтов на любую тематику. Также не забывайте вовремя обновлять вашу тему и время от времени проверять код.

    Доброго времени, понимающие.
    Вчера появилась проблема с shopfilters.ru и его поддоменом aquaphor.shopfilters.ru (оба на одной БД), а именно: странный вредоносный код. Проявляет себя так:
    1. Отключилась возможность обновлять и устанавливать плагины, ядро и т.п.
    2. Жуткие тормоза в админ-панели.
    3. На этом глюки, видимые админу закончились. Ниже описаны проблемы, наблюдаемые пользователями customer, причем только если он посещает сайт из сети, из которой не заходил админ.
    4. При нажатии на меню, логотип и т.п. включается редирект на казино, тотализаторы и т.п.

    Какие шаги были предприняты до появления проблемы:
    1. Установил плагины: ATUM Inventory Management for WooCommerce, Woomage Store Manager WooCommerce API, Smart Store Manager For Your WooCommerce Shop, Store Manager Connector, все с wordpress.org, к последнему скачал триал api-приложение для мониторинга склада с пк.
    2. За пару дней до этого установил Smart Store Manager For Your WooCommerce Shop со стороннего ресурса, предварительно проверив его касперским и докторвэбом, обычную версию, но он адски тормозил. Его снес, и поставил, как уже сказано, с wordpress.org.

    Вчера вечером знакомый сообщил о появившейся проблеме.

    Какие шаги были предприняты после появления проблемы:
    1. Отключил все недавно установленные плагины на обоих сайтах — не помогло
    2. Тоже сделал с темами — не помогло
    3. Проверил сервисами: http://sitecheck.sucuri.net/ :

    Website: shopfilters.ru
    Status: Infected With Malware. Immediate Action is Required.
    Web Trust: Not Currently Blacklisted (10 Blacklists Checked)
    Scan Result Severity Recommendation
    Malware Detected Critical GET YOUR SITE CLEANED
    ISSUE DETECTED DEFINITION INFECTED URL
    http://shopfilters.ru/404javascript.js (View Payload)
    Website Malware rogueads.unwanted_ads?1 http://shopfilters.ru/dostavka/ (View Payload)
    Website Malware rogueads.unwanted_ads?1 http://shopfilters.ru/my-account/ (View Payload)
    Website Malware rogueads.unwanted_ads?1 http://shopfilters.ru (View Payload)
    Known javascript malware. Details: http://labs.sucuri.net/db/malware/rogueads.unwanted_ads?1

    Постоянная ссылка на отчет https://rescan.pro/result.php?
    Опасный код на странице ✔ Проблем не обнаружено
    Вирусы в скриптах ✔ Проблем не обнаружено
    Вставки с опасных сайтов ✖

    http://go.oclasrv.com/apu.php?zoneid=1488199