Анонс WordPress 2.9 Release Candidate 1
Разработчики WordPress объявили о готовности выпустить в свет версию 2.9.
Во-первых, осталось их основным тестерам проверить все ли в порядке с новой версией. А во-вторых, проверить совместимость всех своих плагинов с WordPress 2.9.
Разработчики советуют всем создателям плагинов проверить свои детища на предмет совмеcтимости и отписать по этому поводу в файле readme.txt.
Пока возможно скачать релиз-кандидат, а если все пойдет по плану то на этой недели появится WordPress 2.9.
Вставка Adsense
Для удобства управления Adsense’ом напишем небольшую функцию, которая будет выводит рекламу в нужно вам посте и в определенном месте.
Отойдем от общей практики, как делают чаще всего, вставки кода Adsense в тему WordPress и вывода его в том месте, где вы определили изначально. Это конечно просто, но не удобно.
Открываем файл function.php, находящийся в каталоге вашей темы и добавим в него следующий код.
function showads() {
return '<script type="text/javascript"><!--
google_ad_client = "pub-0000000000000";
google_ad_slot = "000000000";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
';
}
add_shortcode('adsense', 'showads');
Самое главное не забудьте изменить часть кода на ваш скрипт Adsense, если конечно вы не хотите показывать мои блоки на вашем сайте.
Теперь сохраняет файл с функциями и можете вставлять вызов рекламы в нужной статье и в удобном для вас месте.
Для вставки Adsense вам нужно в редакторе в режиме HTML написать:
[adsense]
Отображаем число трекбеков
Открываем файл functions.php, находящийся в каталоге вашей темы.
Добавил туда функцию, код которой написан ниже.
function tb_count() {
global $wpdb;
$count = "SELECT COUNT(*) FROM $wpdb->comments WHERE comment_type = 'pingback' OR comment_type = 'trackback'";
echo $wpdb->get_var($count);
}
Сохраняем файл functions.php и теперь в любом месте вы можете вызвать функцию.
<?php tb_count(); ?>
Доступ к данным поста вне цикла
Понадобилось мне получить доступ к одному единственному посту из множества. В цикле это все можно организовать, но хотелось бы избежать цикла. Оказалось все не очень сложно.
Откроем файл functions.php, который находится в вашей теме и добавим в него еще одну функцию. Эта функция использует единственный аргумент, являющийся ID того самого поста к данным, которого нужно получить доступ. А возвращает функция массив, содержащий заголовок поста, дату написания, содержание поста, ID автора и ID поста.
function get_post_data($postId) {
global $wpdb;
return $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE ID=$postId");
}
Далее пример использования функции
<?php $data = get_post_data(10); echo $data[0]->post_title; //Название поста echo $data[0]->post_date; //Дата написания echo $data[0]->comment_count; //Количество комментариев echo $data[0]->post_content; //Содержание поста ?>
Антиспам
Wordpress для меня является основной CMS. Ее я использую почти под все свои проекты и последнее время заметил, что последнее время спаммеры очень активно атакуют мои сайты, да впрочем и ваши наверное тоже
Конечно, существует Akismet и еще много плагинов, использующих капчу, но сейчас я опишу один трюк с .htaccess. Это не отменяет использование плагинов, но все же помогает реально.
На хостинге в корне вашего сайта должен располагаться файл .htaccess, но его может и не быть, тогда нужно просто его создать. Если он есть, то первым делом вам нужно сделать его резервную копию и никогда не забывать ее делать при работе с этим файлом.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*ВашСайт.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
Этот код определяет referer, т.е. адрес страницы откуда пришел к вам посетитель. Дальше если referer существует или это переход с вашего же сайта, то комментирование позволено. В противном случае, спаммерский бота перенаправляется и комментарий, публиковаться не будет.
P.S. Чуть не забыл, в коде надо поменять ВашСайт.ru на адрес вашего сайта или блога.
