google+ комментарии в wordpress

comments.php
<script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
<div id="plusonecomments" style="width: 750px; height: 300px;"></div>
<script type="text/javascript">
  window.setTimeout(function() {
    var id = 'plusonecomments';
    var divWidth = document.getElementById(id).offsetWidth;
    var width = !!divWidth ? Math.min(divWidth, 750) : 600;
    var url = "<?php the_permalink(); ?>";
    var moderationUrl = "";
    var moderationMode = "FILTERED_POSTMOD";
    gapi.comments.render(id, {
        'href': url,
        'first_party_property': 'BLOGGER',
        'legacy_comment_moderation_url': moderationUrl,
        'view_type': moderationMode,
        'width': width
    });
  }, 10);
</script>


Существует так же плагин Comments Evolved for WordPress

Как отобразить популярные записи по количеству комментариев

Для увеличения заинтерисованности посетителей можно использовать блок с самыми популярными записями. Критерием определения популярности записи может послужить количество комментариев. Конечно можно использовать плагин для этого, но следующий совет поможет обойтись без него.

Просто вставьте следующий код в то место, где вы хотите отображать блок с популярными записями:
$pop = $wpdb->get_results("SELECT id, post_title, comment_count FROM {$wpdb->prefix}posts WHERE post_type='post' ORDER BY comment_count DESC LIMIT 10");
 
<ul>
foreach($pop as $post) : ?>
<li> <?php echo $post->post_title; ?> </li>
<?php endforeach; ?>
</ul>

как автоматически убирать тэг вокруг картинок

По умолчанию, WordPress окружает все изображения тегом . В большинстве случаев это весьма удобно, но может случится, что вам это будет не на руку, поэтому вы можете воспользоваться следующей хитростью, чтобы выключить эту «заботу», не трогая при этом ядро WordPress.

Просто вставьте следующий код в файл functions.php вашей темы и сохраните. Тегов больше нет.
function filter_ptags_on_images($content){
    return preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content);
}
 
add_filter('the_content', 'filter_ptags_on_images');

как автоматически очищать корзину

Просто откройте файл wp-config.php (расположенный в root директории вашего сайта) и вставьте туда следующий код:
define('EMPTY_TRASH_DAYS', 10 );

10 — это число дней, через которое корзина будет очищаться. Можете изменить на более удобный для вас срок.

bruteforce wordpress 2013

Советую почитать hostsuki.pro/tag/bruteforce-2013/

Короче какие выводы можно сделать?
  1. Все эти ваши VDS на 512 — 2 ГБ озу = полное говно, которое легко ложится от обычного wordpress брута.
  2. Эти слабые vds-ки разве что для тестов всяких. Для стоящих проектов это мимо.
  3. А шаред хостинги это вообще мусорки, которые настолько перегружены и засраны.
  4. Короче, наглядно видно, что куда дешевле/выгоднее/рациональнее купить сразу любой дешевый сервер hetzner/ovh/tehnodom на котором такой брут вообще не ощущается.

Как установить wordpress на хостинг c isp manager ?

Буду рассматривать пример, на Скай-Хостинге.
У них web-скрипты активно используются. У многих они выключены или не настроены ;)

Регистрируемся на хостинге.



Проходим проверку, что мы живой человек, а не масс регер для спама какой-ниб.

Выбираем локацию шаред-хостинга.



Видим, как заказ активировался.


Ну а теперь заходим в ISP manager, в свой аккаунт на сервере. Находим там вкладку web-скрипты. Ищем искомый скрипт.

Устанавливаем. Настраиваем конфиг. База данных сама создастся.




В принципе, такая схема применима для любых движков и хостингов где есть ISP manager. Нужно лишь, чтобы хостер включил поддержку веб-скриптов, большинство почему-то не_делает.

Как установить wordpress на хостинг ihc ?

Понаблюдав с пол года, за меткой «хостинг» на всяких сервисах вопросов и ответов, я понял, что просто туева хуча народу не разу в жизни не покупала хостинг. НО обязательно хочет сделать блог или любой другой популярный массовых движок.

Поэтому я напишу мануал, на примере дешевого и надежного хостинга ihc. (50р/мес)

Вы не понимаете сути хостинга, не понимаете сути домена, не знаете что такое dns и прочее. Но вы хотите создать свой первый блог или сайт?
ОК. Я пытался объяснять людям в подробностях на сервисах q/a, но пришел к выводу, что для первого раза это бесполезно, пусть люди сами проверят, протестируют и чему-то научатся.
Поэтому тем, кто шарит, многие моменты покажутся спорными. Да, для себя, я бы делал по другому. НО этот пост написан для человека, критерии которого я описал выше.

Итак, проще всего вам будет воспользоваться акцией, бесплатный домен при оплате за год. Как раз, минимальный срок регистрации домена — 1 год. И хостинг вы купите ровно на год, да еще и дешевле из-за скидки. Самое оно — чтобы понять — нужен ли вам сайт или нет. Будете ли вы дальше, в будущем, изучать сайто-строение, хостинги, домены, различные движки и прочее или же это вам не понравится, не интересно и вы просто забьете.
Да, по статистике добрая половина людей — забивает :) Поэтому, как раз чтобы не терять много денег, самое дешевый/простой/надежный вариант, этот тот, который я щас описываю.

1. Регистрируется на хостинге, выбираем самый дешевый тариф, сроком на 1 год.

2. Далее регистрируем домен. Это в панели управления.


При заказе мы выбирали «блог». По идее wordpress уже должен быть установлен.
НО если же, в будущем что-ниб случится и он не будет установлен автоматически.

Тогда, нам нужен будет FTP клиент, например filezilla Качаем программу.
После оплаты хостинга, нам на email пришли данные всякие.
Вот по ним и логинимся.
Еще, скачиваем последнюю версию блогового движка wordpress
Скачиваем архив, распаковываем. Эти файлы и будем заливать по ftp.
Но сначала настроим файл config.php (если config.php.new называется, уберите приписку .new)
Туда нужно вписать вот эти данные. (эти данные вы создаете в панели, на хостинге ihc, вкладка Базы Данных, первая БД должна прийти на почту после оформления заказа по идее)
define('DB_NAME', 'pXXXXX_blabla');
/** Имя пользователя MySQL */
define('DB_USER', 'pXXXXX_blabla');
/** Пароль к базе данных MySQL */
define('DB_PASSWORD', 'ATBzbIFR');
/** Имя сервера MySQL */
define('DB_HOST', 'pXXXXX.mysql.ihc.ru');


Кстати проверяем в панели, на хостинге. Создан и добавлен ли у нас домен?
Для этого заходим внутрь заказа и там видны все настройки. Добавление доменов. Создание FTP. Создание баз данных.
Вам на почту все эти данные уже должны были прийти. Но если что вот.


Подключаемся, через filezilla, по FTP данным, что у вас есть.
И закачиваем файлы движка, в папку /www/ваш_домен/
Закачиваем именно в таком виде.
т.е. путь должен быть вида /www/ваш_домен/wp-admin/ например, никаких лишних папок.


Если все сделано правильно — заходим на ваш домен — будет меню установки, там все понятно, создаем админа и изучаем движок.

зы Если все совсем туго и не получилось. можете написать мне на alice2k@abcd.bz, я создам и активирую вам там тестовый аккаунт, настрою все. вам останется только оплатить.

Полезные запросы, чтобы очистить БД в wp

Очищает всякие левые символы. Когда кодирует БД туда сюда.
UPDATE wp_posts SET post_content = REPLACE(post_content, '“', '“');
UPDATE wp_posts SET post_content = REPLACE(post_content, '”', '”');
UPDATE wp_posts SET post_content = REPLACE(post_content, '’', '’');
UPDATE wp_posts SET post_content = REPLACE(post_content, '‘', '‘');
UPDATE wp_posts SET post_content = REPLACE(post_content, '—', '–');
UPDATE wp_posts SET post_content = REPLACE(post_content, '–', '—');
UPDATE wp_posts SET post_content = REPLACE(post_content, '•', '-');
UPDATE wp_posts SET post_content = REPLACE(post_content, '…', '…');

UPDATE wp_comments SET comment_content = REPLACE(comment_content, '“', '“');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '”', '”');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '’', '’');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '‘', '‘');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '—', '–');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '–', '—');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '•', '-');
UPDATE wp_comments SET comment_content = REPLACE(comment_content, '…', '…');


Запрос, чтобы закрыть все «обратные ссылки» на свои посты. Ну функция пингбеки знаете такая есть. Не будешь же каждую запись вручную ;)
UPDATE wp_posts SET ping_status = 'closed';


Очищает все неиспользуемые шорткоды.
UPDATE wp_post SET post_content = replace(post_content, '[tweet]', '' ) ;


Удаляет некорректные метки
DELETE FROM wp_postmeta WHERE meta_key = 'YourMetaKey';


Удаляет все неиспользуемые и давно забытые метки, которые не принадлежат постам, но остались в базе.
DELETE FROM wp_terms WHERE term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE count = 0 );
DELETE FROM wp_term_taxonomy WHERE term_id not IN (SELECT term_id FROM wp_terms);
DELETE FROM wp_term_relationships WHERE term_taxonomy_id not IN (SELECT term_taxonomy_id FROM wp_term_taxonomy);


Очистка кеша фидов.
DELETE FROM `wp_options` WHERE `option_name` LIKE ('_transient%_feed_%')


Удаляет все копии сообщений и историю изменений.!!! Вот это очень хорошо очищает. Ибо после каждого редактирования сохраняется копия правок.
DELETE a,b,c FROM wp_posts a WHERE a.post_type = 'revision' LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id);


Пакетное удаление старых сообщений
В данном примере устанавливается для удаления любой пост, который старше 600 дней.
DELETE FROM `wp_posts`
WHERE `post_type` = 'post'
AND DATEDIFF(NOW(), `post_date`) > 600


Изменить автора у всех сообщений сразу.
SELECT ID, display_name FROM wp_users;

UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;

HTML карта сайта на WordPress

Существует достаточно много плагинов, которые строят карту сайта HTML. Но, может быть, вы хотите добавить какие-то специфические особенности для карты вашего сайта. Например, включить или исключить определенные типы заметок и страниц, показать таксономию, и так далее. Поэтому будет полезно создать шаблон карты сайта в своей теме и использовать его.

В действительности, очень полезно использовать карту сайта HTML как часть темы. В таком случае карту сайта можно использовать и на странице WordPress для ошибки 404. Чтобы сделать карту сайта HTML частью темы надо создать папку partials в папке вашей темы. В папке partials создаем создаем файл с именем sitemap.php.

Копируем в него следующий код и правим его в соответствии со структурой своего сайта:
<h2 id="authors">Authors</h2>
<ul>
<?php 
wp_list_authors( 
  array(
    'exclude_admin' => false,
  )
); 
?>
</ul>
 
<h2 id="pages">Страницы</h2>
<ul>
<?php
// Страницы, которые надо исключить из карты сайта добавляем к exclude здесь
wp_list_pages( 
  array(
    'exclude' => '',
    'title_li' => '',
  )
);
?>
</ul>
 
<h2 id="posts">Заметки</h2>
<ul>
<?php
// Категории, которые надо исключить, добавляем к exclude здесь
$cats = get_categories('exclude=');
foreach ($cats as $cat) {
  echo "<li><h3>".$cat->cat_name."</h3>";
  echo "<ul>";
  query_posts('posts_per_page=-1&cat='.$cat->cat_ID);
  while(have_posts()) {
    the_post();
    $category = get_the_category();
    // Ссылку на заметку выводим только один раз, даже если она указана в нескольких категориях
    if ($category[0]->cat_ID == $cat->cat_ID) {
      echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
    }
  }
  echo "</ul>";
  echo "</li>";
}
?>
</ul>

Теперь там, где нужно вывести HTML карту сайта в теме WordPress вставляем следующий код:
<?php get_template_part('/partials/sitemap'); ?>



Чтобы сделать шаблон для карты сайта нужно скопировать файл page.php и переименовать копию в page-sitemap.php. Затем открываем его и ниже вызова функции the_content(); добавляем упомянутый ранее вызов get_template_part(). Теперь переходим в начало файла и после открывающего тега <?php (но перед вызовом get_header()), добавляем комментарий:
/*
Template Name: Карта сайта HTML
*/