Рішення несподівано просте – оновити застарілий бандл кореневих сертифікатів що йде із вордпресом. Тобто ти просто дуже давно не оновляв свій вордпрес, Карл! Так давно, що вордпрес розівчився оновлятись. Взяти свіжий можна наприклад тут https://curl.se/ca/cacert.pem або де завгодно. А покласти його треба тут:
/wp-includes/certificates/ca-bundle.crt
Так просто. Але коли гуглиш то знаходиш геть не ті рішення. Ця коротка нотатка зекономить години часу пошуків. Успіхів!
]]>]]>P.S. Де нема ланок, то плагін геть старий та покинутий розробником. Але від цього плагін не стає гіршим. До прикладу DB Cache Reloaded Fix та WordPress Tiniest Super Cache це супер легкі плагіни, що максимально ефективно розвантажують сервер. У просто першого нема аналогів. Другому аналоги знайдуться, навіть розумніші, але на жаль ніколи настільки швидкі. Tiniest захостить популярний сайт хоч на калькуяторі. Деякі покинуті авторами плагіни підбирають інші розробнки і продовжують роботу.
Але все гаразд бо рішення є. Принаймні воно просте, якщо у нас є 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.
]]>УВАГА! БЕКАПИМОСЯ!
Отже, чистимо всі коментарі із активними гіперпосиланнями:
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]]>
<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>
UPDATE wp_posts SET `post_content` = REPLACE (`post_content`, 'src="http://www.domain.ua', 'src="https://www.domain.ua');
define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true);
закидаємо в швидкий запуск командного рядка NSLOOKUP
nslookup -type=any -timeout=10
де type це тип потрібних записів – звісно нам треба все, а timeout це час очікування відгуку сервера – дефолтних 3 сек буває замало
]]>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();]]>
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.
]]>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, котрий робить те саме для основної форми редагування публікації.
Успіхів та вдачі!
]]>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');]]>