Отключение обновления темы в WordPress

Автор: | 12.06.2013

Как отключить обновление темы в WordPress? На самом деле, сделать это очень просто. Почти как пальцем об асфальт. Зачем это вообще нужно, говорите? Например, если Вы изменили код своей темы и не хотите потерять эти изменения при следующем ее обновлении. Я так особенно часто делаю, когда, например, создаю сайт для клиента на WordPress (чтобы он потом ко мне не прибегал с истерикой «что случилось с сайтом, я всего лишь установил свежие обновления, как вы и говорили!»). Хотите сказать, что нормальные коммерческие сайты на WordPress быть не могут? А вот неправда, в первых версиях вордпресса может так и было, когда он был чисто блоговым движком, а сейчас это очень даже универсальная CMS, из которой можно сделать практически любой коммерческий сайт. Если клиент еще и планирует сам поддерживать свой сайт, но дальше изучения MS Office Word его знания иссякают — WordPress очень даже не плохой выбор. Ну и когда за Битрикс заплатить жаба душит:) Хотя он стоит всего 2 тысячи рублей в начальной комплектации — и действительно того стоит.

Но я немного отвлекся. И так, ищем в папке своей темы файл functions.php (например, /public_html/wp-content/themes/название_шаблона/functions.php) и добавляем в конец него ПЕРЕД закрывающим тегом php-кода (если он есть)

?>

вот такие 3 строчки (у вас ведь WordPress 3 версии?):

remove_action('load-update-core.php','wp_update_themes'); 
add_filter('pre_site_transient_update_themes',create_function('$a', "return null;")); 
wp_clear_scheduled_hook('wp_update_themes');

Если Вы используете более старую версию, нежели WordPress 3.0, то советую все-таки обновить версию до последней доступной, во избежание взломов и проблем в будущем. Но если Вы никак не хотите обновлять свою версию движка, вот вам код для версий WordPress от 2.8 до 3.0:

remove_action('load-themes.php', 'wp_update_themes'); 
remove_action('load-update.php', 'wp_update_themes'); 
remove_action('admin_init', '_maybe_update_themes'); 
remove_action('wp_update_themes', 'wp_update_themes'); 
add_filter('pre_transient_update_themes', create_function('$a',"return null;")); 
wp_clear_scheduled_hook('wp_update_themes');

Но я Вас предупредил) Просто имел уже дело со взломанным сайтом, который взломали как раз по причине его долгого необновления, на который закачали тонну вирусов, вернее, заразили все js-скрипты в папке сайта (правда, движок был Joomla, но, думаю, что особой разницы нет). Удалять их потом можно было только вручную, потому что код был везде разный, без обфускации не обошлось (проще говоря, запутанный код, написанный на JavaScript, функциональность которого невозможно проанализировать без деобфускации — «разпутывания»), и мы с клиентом, посмотрев на это дело, решили, что проще сделать другой сайт, и уже на движке WordPress — его, как минимум, намного проще обновлять, чем Joomla, да и нормальных атак на него (по-крайней мере, по моей практике), происходит меньше, потому что коммерческих сайтов на нем действительно не так много, как на той же самой Jooml’e, а следовательно и атакуют их только всякие школьники, серьезные люди не будут такой глупостью заниматься, все-таки это время, силы и деньги. Это как с DDOS — в основном, им занимаются шалопаи-студенты и их атаки не представляют серьезной угрозы, но когда им занимается команда профессионалов, это действительно страшная сила (Северную Корею таким образом не так давно буквально парализовали — не работали ни интернет, ни цифровые коммуникации — а у них там все на них завязано, чуть ли не отопление. Так вот — до сих пор разбираются, кто виноват).

Но если у Вас пароли стоят такие, которые подберет первый же простенький брутфорс (атака, при которой происходит подбор  пароля из самых часто используемых) — то Вас никакие обновления не спасут) И я, кстати, не шучу — недавно пришел клиент по поводу продвижения своего сайта — так у него почти год (с момента создания и до того момента, как он ко мне пришел) стоял пароль на администратора — «test», а на права редактора — и того лучше — просто цифра один . И это совсем не смешно — если кто-то при создании сайта на заказ ставит на админские права пароль «test» и сдает клиенту сайт, зная, что его клиент может даже пароль не суметь самостоятельно поменять — это сейчас считается нормальным???

UPD. А чуть позже выяснилась еще более интересная деталь — весь этот год этот же «вебмастер» занимался продвижением этого сайта! И даже свой суперсложный пароль «test» не поменял! О чем это говорит??? Жесть, короче… Может по конкурентам пробежаться, мало ли, может кого-нибудь из них так же продвигают?)

UPD2. Иногда эта фишка с добавлением кода в functions.php не срабатывает, как я убедился на собственном опыте. Тогда вырубаем возможность обновления Железным Топором (именно так):

убираем из файла style.css, который находится в папке с нашей темой, из закомментированных строк вверху файла, упоминания о сайтах разработчиков и добавляем к имени шаблона какой-нибудь текст, например & I. То есть, *разработчик* и я =) Вот какой текст получился у меня (тема называется Discussion):

/*
Theme Name: My DISCUSSION 
Theme URI: #
Author: D5 Creation & I
Author URI: #
Description: DISCUSSION is a theme for Bloggers. All the pages, posts and contents 
are designed on a notice board using push pin and sheets. You may like te stylish 
design. D5 Creation's Support will be with you, Always!
Version: 1.02
Tags: red, gray, two-columns, right-sidebar, fixed-width, custom-header, 
custom-background, custom-menu, threaded-comments, sticky-post, full-width-template
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: discussion&I
*/

Больше тема своими обновлениями  тревожить не должна.

UPD3. Да, еще можно вообще напалмом выжечь :) Можно просто убрать весь текст о шаблоне и его разработчиках из файла style.css, который приведен выше. То есть, всю верхушку до тега html. Функциональность от этого не пострадает, шаблон будет так же работать. НУ, естественно, обновляться не будет, но мы же этого и добивались?) А в темах будет написано разработчик «неизвестно». Только и всего ;)

Отключение обновления темы в WordPress: 3 комментария

  1. Василий

    достаточно плезно, но есть неясности. сейчас попробую, и если не получиться задав вопросы

    1. Admin Автор записи

      Я так понимаю, все получилось, если вопросы больше не последовали?)

Добавить комментарий

Ваш e-mail не будет опубликован.

Впишите правильную цифру в пример - для Вас это не составит труда, а робот не сможет: * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.