wordpress.ukr.im Просто ще один раз про WordPress ;) 2018-12-04T14:05:50Z http://wordpress.ukr.im/feed/atom/ WordPress ВебМайстер <![CDATA[WordPress permalinks на голому Nginx]]> http://wordpress.ukr.im/?p=276 2018-12-04T01:46:48Z 2018-12-04T01:44:41Z Ну ось і вилізла нам боком боротьба за швидкодію. Ми запустили Nginx як вебсервер і все ніби добре… окрім пермалінків вордпресу (WordPress permalinks) – вони не працюють так як не працює .htaccess.

Але все гаразд бо рішення є. Принаймні воно просте, якщо у нас є root або якщо в директоріях нашого користувача є конфіги Nginx.

Отже шукаємо конфіги Nginx. Для прикладу панелька Vesta кладе їх так: /home/examplecom/conf/web/example.com.nginx.conf. Маючи рута можемо правити глобальний конфіг десь тут /etc/nginx/conf/global/. Шукаємо або гугл в поміч. 

В конфіг Nginx в секцію “location / {” треба додати:

try_files $uri $uri/ /index.php?$args;

Ось і все власне – service nginx restart.

]]>
0
ВебМайстер <![CDATA[Як видалити коментарі WordPress із посиланнями]]> http://wordpress.ukr.im/?p=269 2018-07-08T04:46:18Z 2018-07-08T04:42:53Z Звісно в нас можуть бути корисні коментарі із посиланнями але за звичай це спам. Цей метод не у всіх випадках підійде але коли в базі тисячі спам коментарів то можна пожертвувати кількома валідними із посиланнями.

УВАГА! БЕКАПИМОСЯ!

Отже, чистимо всі коментарі із активними гіперпосиланнями:

DELETE FROM wp_comments WHERE comment_content LIKE '%a href%'

Або, чистимо абсолютно всі коментарі, що включають згадку протоколу HTTP:

DELETE FROM wp_comments WHERE comment_content LIKE '%http%'
]]>
0
ВебМайстер <![CDATA[Переводимо WordPress вебсайт на SSL/HTTPS]]> http://wordpress.ukr.im/?p=262 2018-07-07T05:23:28Z 2018-07-07T05:03:17Z
  • Генеруємо сертифікат на sslforfree.com або аналогічному сервісі;
  • Прописуємо (додаємо і застосовуємо) сертифікат в панелі керування хостингу;
  • Тестуємо вебсайт на відкриття по HTTPS://, відключаємо кешуючі плагіни;
  • Прописуємо https:// в палаштуваннях адмінки Wordpress;
  • Опційно в .htaccess додаємо щось форсуюче SSL протокол, на кшталт:
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} !=on [NC] [OR]
    RewriteCond %{SERVER_PORT} !443
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    </IfModule>
    
    
  • Всі зображення внутрішні переліннковуємо по https виконавши SQL команду:
    UPDATE wp_posts SET `post_content` = REPLACE (`post_content`, 'src="http://www.domain.ua', 'src="https://www.domain.ua');
    
  • Всі зображення що відкриваються з зовнішніх доменів мають приходити по https також;
  • Якщо не форсуємо SSL в .htaccess, тоді опційно можна форсувати авторизацію адмінки та/або адмінку WordPress цілком на SSL протокол шляхом прописування однієї або обох директив в wp-config.php:
    define('FORCE_SSL_LOGIN', true);
    define('FORCE_SSL_ADMIN', true);
    
  • ]]>
    0
    ВебМайстер <![CDATA[Як відобразити список підсторінок поточної сторінки]]> http://wordpress.ukr.im/?p=256 2016-02-07T05:30:47Z 2016-02-07T05:30:47Z Простий спосіб:

    if(is_page('10')||is_page('270')||is_page('164')||is_page('111')) {
        wp_list_pages( 'child_of='.$post->ID.'&title_li=' ); 
    }
    

    Альтернативний спосібз розширеною кастомізацією:

        $post_parent = 125 /* тут задаємо номер сторінки, список підсторінок якої ми хочемо відобразити. Можна взяти із функцій, чи як завгодно. */
        $args = array('post_parent' => $post_parent, 'post_type' => 'page', 'orderby' => 'menu_order', 'order' => 'ASC' );  
        $subpages = new WP_query($args);  
        if ($subpages->have_posts()) :  
            while ($subpages->have_posts()) : $subpages->the_post();  $i++;?>
                    <li>
                        <h3><a href="<?echo get_permalink();?>"><?echo get_the_title();?></a></h3>
                        <div class="panel loading">
                            <p><?echo get_the_excerpt();?></p>
                        </div>
                    </li><?
    	  endwhile;  
        else :  
            $output = '<p>No subpages found.</p>';  
        endif;  
        wp_reset_postdata();
    
    ]]>
    0
    ВебМайстер <![CDATA[Закриваємо коментарі на всіх WordPress публікаціях одним SQL запитом]]> http://wordpress.ukr.im/?p=246 2015-07-10T21:31:14Z 2015-07-10T13:46:44Z Якщо у вас є лише тільки кілька сторінок на вашому WordPress сайті або блозі, то ви можете просто зняти кілька прапорців, щоб закрити коментарі на вже опублікованих дописах. Але якщо кількість публікацій сягає за тисячі, то ви хотіли б зробити це по-іншому. Ось він, один запит SQL:

    UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE comment_status = 'open';
    

    Він закриє пінги та коментарі на всіх опублікованих дописах, де на даний момент коментарі дозволені.
    Щоб зробити протилежне – включити коментарі для всіх існуючих посад Ви хотіли б виконати:

    UPDATE wp_posts SET comment_status = 'open', ping_status = 'open' WHERE comment_status = 'closed';
    

    Підглянуто на сторінці Close comments on all WordPress posts with one SQL request.

    ]]>
    0
    ВебМайстер <![CDATA[Лічимо кількість символів у витягу]]> http://wordpress.ukr.im/?p=236 2015-03-30T19:18:46Z 2015-03-30T18:17:28Z Деякий дизайн вимагає певної кількості символів від витягу для оптимального вигляду сторінок. В редактор можна додати лічильник символів для витягу. Для цього в файл functions.php поточної теми wordpress додаємо наступний код:

    function excerpt_count()
    {
          echo '<script>jQuery(document).ready(function()
          {
                jQuery("#postexcerpt .handlediv").after("<div style=\"position:absolute;top:14px;right:50px;color:#FC0707;\">Витяг має налічувати від 600 до 700 символів. <strong style=\"color:#000\">( зараз <name id=\"excount\">0</name> літер. )</strong></div>");
                jQuery("#excerpt").keyup( function() 
                {
                    jQuery("#excount").html(jQuery("#excerpt").val().length);
                });
          });
        </script>';
    }
    add_action( 'admin_head-post.php', 'excerpt_count');
    add_action( 'admin_head-post-new.php', 'excerpt_count');
    

    Тепер нам не доведеться візуально підбирати довжину тексту.

    Ще є такий плагін Posts Character Count Admin, котрий робить те саме для основної форми редагування публікації.

    Успіхів та вдачі!

    ]]>
    0
    ВебМайстер <![CDATA[Заміна домена wordpress – SQL MySQL PhpMyAdmin]]> http://wordpress.ukr.im/?p=216 2016-09-25T00:49:01Z 2015-03-09T21:44:36Z Коли ми заміняємо домен з старого на новий не достатньо просто замінити домен і налаштуванні WordPress. Тобто достатньо, але щоб зробити це якісно та для СЕО, то доведеться “підчистити хвости”. Для чистки хвостів вордпресу є кілька SQL команд:

    UPDATE wp_posts SET guid = REPLACE (guid, 'olddomain.com', 'newdomain.com');
    UPDATE wp_posts SET post_content = REPLACE (post_content, 'olddomain.com', 'newdomain.com');
    UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'olddomain.com','newdomain.com');
    UPDATE wp_usermeta SET meta_value = replace(meta_value, 'olddomain.com', 'newdomain.com');
    UPDATE wp_options SET option_value = replace(option_value, 'olddomain.com', 'newdomain.com');
    

    Ось і все – кидаємо в улюблений блокнот, заміняємо olddomain.com на наше старе ім’я домену, newdomain.com заміняємо на наше нове доменне ім’я і тиснемо ентер в PhpMyAdmin.

    Функція LOWER() допомагає боротися з записами як OldDomain.COM та їм подібними апперкейсами. Використовується таким чином: “UPDATE wp_postmeta SET meta_value = REPLACE (LOWER(meta_value), ‘olddomain.com’,’newdomain.com’)”. Але УВАГА! Всі рядки, де будуть знайдені співпадіння залоуеркейсить повністю. Це критично для UPDATE wp_posts бо всі тексти стануть ловеркейсними. Тому LOWER() треба використовувати лише у разі потреби і до тих таблиць, не не буде завдано шкоди.

    Якщо у вас замість вордпреса випадково виявився OpenCart то правимо конфіги в корені і адмін та викоруємо дуже схожий SQL запит:

    UPDATE oc_setting SET value = REPLACE (LOWER(value), 'olddomain.com', 'newdomain.com');
    
    ]]>
    0
    ВебМайстер <![CDATA[Відображення кількості SQL запитів та часу виконання WordPress]]> http://wordpress.ukr.im/?p=218 2015-03-10T00:27:41Z 2015-02-11T23:44:58Z Колись просто цікаво, а іноді необхідно побачити чи показати кількість SQL запитів здійснених для генерації сторінки на WordPress, та час виконання скрипта. Для цього нам навіть не потрібно буде створювати жодних таймерів. Довтатньо в потрібному місці вставити наступний PHP код

    :

    <?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds.
    

    Якщо використовується плагін для кешування SQL запитів до бази даних, то буде відображену реально здійснену кількість запитів. Тобто кешовані запити в цю цифру не попадуть.

    Швидких Вордпресів!

    ]]>
    0
    ВебМайстер <![CDATA[Публікація деякої інформації згідоно дати]]> http://wordpress.ukr.im/?p=228 2015-03-10T19:45:18Z 2015-01-29T19:36:45Z Іноді інформацію треба розмістити на сайті в певному проміжку часу. Прикладів може бути маса. Ось як варіант: каталоги іноді просять розмістити зворотнє посилання “для присторення модерації”. При цьому навіть не завжди те посилання справді прискорює процес, але то інше питання.

    Суть в тому, що нам надають послугу присторення за розміщення посилання на нашому сайті. Розміщення має бути тимчасове. Але якщо сайт належить нашому клієнту, то ми, як розробник можемо просто забути за те посилання. Або якщо то й наш сайт, все одно можемо забути. А послугу “прискорення” нам можливо і не надали по факту. Зате посилання каталог отримав. Коротше, розміщення має бути тимчасове:

    <? $date = time();
    $contestEnd = strtotime('2015-03-24 00:00:00');
    if ($date < $contestEnd) echo "<h1> wordpress.ukr.im рулить! </h1>"; ?>
    

    Так само код буде корисний для усіляких акцій, анонсів та інших речей що прив’язані і актуальні за чіткою датою.

    Актуальних Вордпресів!

    ]]>
    0
    ВебМайстер <![CDATA[Оптимізовуємо базу даних WordPress]]> http://wordpress.ukr.im/?p=202 2015-03-30T18:39:30Z 2015-01-26T13:02:32Z У базі даних вордпресу часом накопичується різноманітне сміття. На приклад, записи _transient_ в таблиці wp_options. Чистимо їх наступним чином:

    delete from wp_options where option_name like '_transient_%'

    NextGen Gallery полюбляє смітити, прибираємо:

    delete from wp_options where option_name like 'displayed_gallery_rendering_%'
    delete from wp_options where option_name like 'displayed_galleries_%'

    Далі буде…

    ]]>
    0