wordpress.ukr.im http://wordpress.ukr.im Просто ще раз про WordPress ;) Thu, 13 Mar 2025 01:02:42 +0000 uk hourly 1 https://wordpress.org/?v=3.9.40 WordPress: cURL error 60: SSL certificate has expired http://wordpress.ukr.im/kvik-fiks/wordpress-curl-error-60-ssl-certificate-has-expired/ http://wordpress.ukr.im/kvik-fiks/wordpress-curl-error-60-ssl-certificate-has-expired/#comments Thu, 27 Feb 2025 03:31:32 +0000 http://wordpress.ukr.im/?p=290 Побороти таку ситуацію може піти не одна година. Навіть коли всі радять прописати шлях до бандла сертифікатів (cacert.pem) в php.ini, тут справа в іншому. Адже тестовий CURL запит з сусіднього файла проходить добре, а у WordPress – cURL error 60: SSL certificate has expired.

Рішення несподівано просте – оновити застарілий бандл кореневих сертифікатів що йде із вордпресом. Тобто ти просто дуже давно не оновляв свій вордпрес, Карл! Так давно, що вордпрес розівчився оновлятись. Взяти свіжий можна наприклад тут https://curl.se/ca/cacert.pem або де завгодно. А покласти його треба тут:

/wp-includes/certificates/ca-bundle.crt

Так просто. Але коли гуглиш то знаходиш геть не ті рішення. Ця коротка нотатка зекономить години часу пошуків. Успіхів!

]]>
http://wordpress.ukr.im/kvik-fiks/wordpress-curl-error-60-ssl-certificate-has-expired/feed/ 0
Мій ідеальний функціональний WordPress! http://wordpress.ukr.im/must-have-plugins/my-perfect-wordpress/ http://wordpress.ukr.im/must-have-plugins/my-perfect-wordpress/#comments Sat, 28 Mar 2020 02:38:40 +0000 http://wordpress.ukr.im/?p=295 Тож, це чекліст для потужної WordPress інсталяції. Щоразу як подумав що зробив класний проект – переконайся що все потрібне з списку заряджене!

  • Редактор в ньому олдскульний, отже повнофункціональний, завдяки Класичний редактор.
  • Запити до бази даних кешовані DB Cache Reloaded Fix.
  • SEO класне і навігація покрщена завдяки Configurable Tag Cloud.
  • Українська локаль: Ukr-To-Lat а ще “Українські дати для WordPress” та “Правильне відмінювання кількості коментарів”.
  • Кеш хардкорний адже це Wordpress Tiniest Super Cache!
  • Роботу по проекту допомагають організовувати та мотивують WP Dashboard Notes.
  • Перебір паролів адмінки зупиняє  .htaccess Login block.
  • Має мапу сайту через Google XML Sitemaps.
  • 404 Notifier повідомляє коли щось пішло не так та віддємо чистий ХТМЛ на 404.
  • Коли клієнт в адмінці, Imsanity попіклується про адекватність розмірів зображень.
  • WordPress File Monitor маякне, коли на диску щось зміниться – безпека понад усе.
  • Читаємо МаєшМати і вйо до праці! ;)

P.S. Де нема ланок, то плагін геть старий та покинутий розробником. Але від цього плагін не стає гіршим. До прикладу DB Cache Reloaded Fix та WordPress Tiniest Super Cache це супер легкі плагіни, що максимально ефективно розвантажують сервер. У просто першого нема аналогів. Другому аналоги знайдуться, навіть розумніші, але на жаль ніколи настільки швидкі. Tiniest захостить популярний сайт хоч на калькуяторі. Деякі покинуті авторами плагіни підбирають інші розробнки і продовжують роботу.

]]>
http://wordpress.ukr.im/must-have-plugins/my-perfect-wordpress/feed/ 0
WordPress permalinks на голому Nginx http://wordpress.ukr.im/kvik-fiks/wordpress-permalinks-na-holomu-nginx/ http://wordpress.ukr.im/kvik-fiks/wordpress-permalinks-na-holomu-nginx/#comments Tue, 04 Dec 2018 01:44:41 +0000 http://wordpress.ukr.im/?p=276 Ну ось і вилізла нам боком боротьба за швидкодію. Ми запустили 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.

]]>
http://wordpress.ukr.im/kvik-fiks/wordpress-permalinks-na-holomu-nginx/feed/ 0
Як видалити коментарі WordPress із посиланнями http://wordpress.ukr.im/boremo-spam/yak-vydalyty-komentari-wordpress-iz-posylannyamy/ http://wordpress.ukr.im/boremo-spam/yak-vydalyty-komentari-wordpress-iz-posylannyamy/#comments Sun, 08 Jul 2018 04:42:53 +0000 http://wordpress.ukr.im/?p=269 Звісно в нас можуть бути корисні коментарі із посиланнями але за звичай це спам. Цей метод не у всіх випадках підійде але коли в базі тисячі спам коментарів то можна пожертвувати кількома валідними із посиланнями.

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

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

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

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

DELETE FROM wp_comments WHERE comment_content LIKE '%http%'

Чи, чистимо абсолютно всі НЕПОГОДЖЕНІ коментарі, що включають згадку протоколу HTTP:

DELETE FROM wp_comments WHERE comment_content LIKE '%http%' AND comment_approved=0
]]>
http://wordpress.ukr.im/boremo-spam/yak-vydalyty-komentari-wordpress-iz-posylannyamy/feed/ 1
Переводимо WordPress вебсайт на SSL/HTTPS http://wordpress.ukr.im/whatever/wordpress-na-ssl-https/ http://wordpress.ukr.im/whatever/wordpress-na-ssl-https/#comments Sat, 07 Jul 2018 05:03:17 +0000 http://wordpress.ukr.im/?p=262
  • Генеруємо сертифікат на 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);
    
  • ]]>
    http://wordpress.ukr.im/whatever/wordpress-na-ssl-https/feed/ 0
    Середовище WordPress розробки – Windows http://wordpress.ukr.im/off-topic/seredovysche-rozrobky-windows/ http://wordpress.ukr.im/off-topic/seredovysche-rozrobky-windows/#comments Sat, 04 Mar 2017 14:15:03 +0000 http://wordpress.ukr.im/?p=302 Кватирки – звісно ще та глюка. Ще й платна. Але що вже маємо. Не надто гірше, а може й краще Linux в плані UX та продуктивності а не стабільності, звісно. Отже що нам домопоже на платфонмі Windows:

    закидаємо в швидкий запуск командного рядка NSLOOKUP

    nslookup -type=any -timeout=10

    де type це тип потрібних записів – звісно нам треба все, а timeout це час очікування відгуку сервера – дефолтних 3 сек буває замало

    ]]>
    http://wordpress.ukr.im/off-topic/seredovysche-rozrobky-windows/feed/ 0
    Як відобразити список підсторінок поточної сторінки http://wordpress.ukr.im/kvik-fiks/yak-vidobrazyty-spysok-pidstorinok-potochnoji-storinky/ http://wordpress.ukr.im/kvik-fiks/yak-vidobrazyty-spysok-pidstorinok-potochnoji-storinky/#comments Sun, 07 Feb 2016 05:30:47 +0000 http://wordpress.ukr.im/?p=256 Простий спосіб:

    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();
    
    ]]>
    http://wordpress.ukr.im/kvik-fiks/yak-vidobrazyty-spysok-pidstorinok-potochnoji-storinky/feed/ 0
    Закриваємо коментарі на всіх WordPress публікаціях одним SQL запитом http://wordpress.ukr.im/kvik-fiks/zakryvajemo-komentari-na-vsih-wordpress-publikatsiyah-odnym-sql-zapytom/ http://wordpress.ukr.im/kvik-fiks/zakryvajemo-komentari-na-vsih-wordpress-publikatsiyah-odnym-sql-zapytom/#comments Fri, 10 Jul 2015 13:46:44 +0000 http://wordpress.ukr.im/?p=246 Якщо у вас є лише тільки кілька сторінок на вашому 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.

    ]]>
    http://wordpress.ukr.im/kvik-fiks/zakryvajemo-komentari-na-vsih-wordpress-publikatsiyah-odnym-sql-zapytom/feed/ 0
    Лічимо кількість символів у витягу http://wordpress.ukr.im/kvik-fiks/excerpt-character-length/ http://wordpress.ukr.im/kvik-fiks/excerpt-character-length/#comments Mon, 30 Mar 2015 18:17:28 +0000 http://wordpress.ukr.im/?p=236 Деякий дизайн вимагає певної кількості символів від витягу для оптимального вигляду сторінок. В редактор можна додати лічильник символів для витягу. Для цього в файл 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, котрий робить те саме для основної форми редагування публікації.

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

    ]]>
    http://wordpress.ukr.im/kvik-fiks/excerpt-character-length/feed/ 0
    Заміна домена wordpress – SQL MySQL PhpMyAdmin http://wordpress.ukr.im/kvik-fiks/zamina-domena-wordpress-sql-mysql-phpmyadmin/ http://wordpress.ukr.im/kvik-fiks/zamina-domena-wordpress-sql-mysql-phpmyadmin/#comments Mon, 09 Mar 2015 21:44:36 +0000 http://wordpress.ukr.im/?p=216 Коли ми заміняємо домен з старого на новий не достатньо просто замінити домен і налаштуванні 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');
    
    ]]>
    http://wordpress.ukr.im/kvik-fiks/zamina-domena-wordpress-sql-mysql-phpmyadmin/feed/ 0