Хакове за WordPress

Става въпрос за някои дописвания на кода  на WordPress 2.8 с цел отстраняване на проблеми или за улесняване на работата с блога.

Проблем с паметта след инсталиране на WordPress 2.8

Инсталираш  нов WordPress 2.8 и при влизане в админ панела в Настройки виждаш следното:

Wordpress memory error

Всички полета след „Часова зона“ липсват и най-гадното е, че липсва бутона „Запис на промените“ и така не можеш да промениш нищо в тази страница. Ако направиш view source ще видиш в кода грешка подобна на следната:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 7680 bytes) in /home/imesait/public_html/blog/wp-includes/functions.php(3233) : runtime-created function(2) : runtime-created function on line 1

Новата версия на WordPress изисква доста повече памет.
Подобен проблем може да видиш и на други места в блога. Например в „Табло“ в админ панела, в блоковете за новини за WordPress или в блоковете на някои разширения. Но където и да видиш грешка започваща с

Fatal error: Allowed memory size of…

значи става въпрос за недостиг на оперативна памет.

За да се справиш с този проблем и за да нямаш проблем при бъдещи обновявания на системата, направи следното.

Решение 1:

Отвори файла wp-config.php (в главната директория на блога) и в край на файла, НО ПРЕДИ РЕДА

require_once(ABSPATH.'wp-settings.php');

добави следното:

# ganbox.com : memory fix : https://ganbox.com/blog/хакове-за-wordpress
define('WP_MEMORY_LIMIT', '64M');

След това качи по FTP файла на сървъра и тествай. На повечето хостинги това трябва да реши проблема.

Например на superhosting.bg става, докато на host.bg не става.

Ако все пак системният администратор на хостинга е забранил това действие, предлагам ти следния хак.

Решение 2:

Отвори файла wp-includes/functions.php и някъде около ред 3203 намери:

$all = timezone_identifiers_list();

Този ред изяжда прекалено много памет  и това води до грешка. Ако блога ще се ползва само от България, падащия списък с часови зони е излишен. Замести горния ред със следното:

# $all = timezone_identifiers_list();
# ganbox.com : memory optimization : https://ganbox.com/blog/хакове-за-wordpress
$all = array('Europe/Sofia');

Това вече със сигурност ще реши проблема в административната страница Настройки, след като качиш файла.

Няма проблем и дори ти препоръчвам да направиш и двете промени, за да върви страница Настройки по-бързо.


Оправяне на проблем с редирект след логаут.

Ако се намираш в статия, която има URL адрес на кирилица при login или logout би трябвало да бъдеш прехвърлен към същата статия, но вместо това попадаш в страница за грешка 404 на блога.

Решение:

Отвори файла wp-includes/pluggable.php и потърси функция function wp_sanitize_redirect($location)

(около ред 870)

Промени следващия ред от функцията:

$location = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%!]|i', '', $location);

на

# ganbox.com fix $location = preg_replace('|[^a-z0-9-~+_.?#=&;,/:%!]|i', '', $location);
$location = preg_replace('|[^абвгдежзийклмнопрстуфхцчшщъьюяa-z0-9-~+_.?#=&;,/:%!]|i',
'', $location);

Качи файла wp-includes/pluggable.php и тествай. Забележка не става с „а-я“ в регулярния израз.

Бутончета за логване и бърз достъп до админ панела.

В този блог бутончето най-горе вдясно с ключа служи за логване или за изход, като след вход или изход оставаш в същата статия.

След като се логнеш това бутонче се сменя с друго на което има картинка с отворена врата и от което може да направиш логаут. По този начин бързо се ориентираш дали в момента си логнат. Освен това като си логнат се показва още един бутон с картинка гаечен ключ от който влизаш в админ панела.

blog_buttonsАко искаш да си направиш такива бутончета за твоя блог отвори файла

wp-content/themes/default/header.php

(където default е името на темата която ползваш)

и използвай код подобен на следния:

<div id="header">
  <div align="right" id="header_links">
    <a href="<?php bloginfo('url'); ?>"><img 
    src="<?php bloginfo('stylesheet_directory'); ?>/images/ihome.png" 
    width="20" height="21" alt="В началото на блога" title="В началото на блога" /></a>
    <a href="/about"><img src="<?php bloginfo('stylesheet_directory'); ?>/images/iletter.png" 
    width="20" height="21"
    alt="Контакт със SEO специалист" title="Контакт със SEO специалист" /></a>
    <?php if ( !is_user_logged_in() ):?>
      <a href="<?php print wp_login_url($_SERVER['REQUEST_URI']) ?>"><img 
      src="<?php bloginfo('stylesheet_directory')?>/images/ilogin.png" 
      width="20" height="21"
      alt="Вход в блога с име и парола" title="Вход в блога с име и парола" /></a>
    <?php else: ?>
      <a href="<?php bloginfo('url'); ?>/wp-admin"><img
      src="<?php bloginfo('stylesheet_directory')?>/images/tool.gif" 
      width="26" height="20" alt="Управление на блога" title="Управление на блога" /></a>
      <a href="<?php print wp_logout_url($_SERVER['REQUEST_URI']) ?>"><img 
      src="<?php bloginfo('stylesheet_directory')?>/images/admin_logout.gif"
      width="21" height="22" alt="Изход от блога" title="Изход от блога" /></a>
    <?php endif ?>
  </div>
  <div id="header_title">
     <h1><?php bloginfo('name'); ?></h1>
     <h2><?php bloginfo('description'); ?></h2>
  </div>
</div>

Картинките се поставят в папка images на темата. Може да ги изтеглиш от моя блог.

Тук съм дал целия div header от файла header.php на темата за по-лесно ориентиране.

Прочетена:10161
1 - лоша2 - слаба3 - средна4 - добра5 - отлична (1 гласа, оценка: 5,00 от 5. Моля изберете оценка!)
Loading...

5 коментара

  1. vesodimov 16.09.2009
  2. gan 16.09.2009
  3. gan 20.10.2009
споделиха