Максим Покровский

— Привет, меня зовут Максим Покровский. Вы находитесь в моем рабочем кабинете. Поскольку я фрилансер, будем считать, что именно так он и выглядит. Здесь я пишу много интересных вещей, и если вы почувствовали, что я именно тот человек, который вам нужен, то я всегда открыт для контакта.

Сделал за последнее время:


  • Добавил в портфель около 48-и новых работ:

  • Сделал очень много всяких штук при работе над поддержкой сайтов.
    Как бы это теперь в портфель запихнуть?

Заказать мне работу
18.12

Wordpress 2.8. У вас не работают некоторые плагины? Фиксим.

Комментарии (0) wordpress

У многих перестали корректно работать некоторые плагины. В частности те которые используют JS. То есть пропали всякие рющечки, например голосовалки, контактные формы на ajax.

Сие из-за того, что в wordpress принято грузить скрипты через wp_enqueue_script(). Вот только в wp2.7 они грузились ДО загрузки страницы, а wp2.8 ПОСЛЕ.

Если посмотреть на синтаксис функции то выглядит она вот так

wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );

Фиксится проблема элементарно: просто подставьте wp_footer() перед </body>

30.11

Плагин Add code to RSS

Комментарии (3) wordpress

Я уже делился (http://pokrovskii.com/kak-vyvesti-v-rss-meta-dannye/) способом которым можно расширить вашу RSS ленту. Его недостаток заключался в том, что после каждого аптейта необходимо было проделвать процедуру заново. Тогда я написал плагин (спасибо за консультации Владимиру). Заодно и расширил функционал.

Теперь в RSS можно добавить любой текст или php-код. Как до основной ленты, так и после.

Это очень удобно. Нет, правда!

Может картинку в начале ленты?

<?php
   global $post;
   $big_img = get_post_meta($post->ID, 'BigImageURL', true);
   $img = get_post_meta($post->ID, 'ImageURL', true);
   $img_title = $post->post_title;
   if ($big_img) {
      echo '<p><img src="'.$big_img.'" alt="'.$img_title.'" title="'.$img_title.'" /></p>';
   }
   else {
      echo '<p><img src="'.$img.'" alt="'.$img_title.'" title="'.$img_title.'" /></p>';
   }
?>

Количество комментариев в конце?

<?php
    echo '<div class="comment">';
       echo '<a href="';
       the_permalink();
       echo '">';
         comments_number('post a comment', '1 comment', '% comments');
         echo '</a>';
    echo '</div>';
?>

Не, идем дальше: выведем сами комментарии

     <ol class="commentlist">
<?php wp_list_comments(); ?>
</ol>

И копирайты напишем.

<p>Без спроса не копировать, а то атата сделаю.</p>

Скачать Add Code to RSS

11.07

Wordpress. Как сделать экспорт одной категории

Комментарии (3) wordpress

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

Открываем админку нашего сайта, переходим “инструменты –> Экспорт”

image

Чем мотивировались разработчики привязывая экспорт к имени, для меня загадка, но и ляд с ним. Будем исправлять.

Открываем wp-admin/export.php и ищем там вот такие строчки:

if ( isset( $_GET['download'] ) ) {
   export_wp( $_GET['author'] );
   die();
}

Меняем их на:

if ( isset( $_GET['download'] ) ) {
   export_wp( $_GET['category'] );
   die();
}

Далее снова ищем…

<table class="form-table">
<tr>
<th><label for="author"><?php _e('Restrict Author'); ?></label></th>
<td>
<select name="author" id="author">
<option value="all" selected="selected"><?php _e('All Authors'); ?></option>
<?php
$authors = $wpdb->get_col( "SELECT post_author FROM $wpdb->posts GROUP BY post_author" );
foreach ( $authors as $id ) {
$o = get_userdata( $id );
echo "<option value='$o->ID'>$o->display_name</option>";
}
?>
</select>
</td>
</tr>
</table>

… и меняем

<table class="form-table">
<tr>
<th><label for="category"><?php _e('Выберете категорию'); ?></label></th>
<td>
<select name="category" id="category">
<option value="all" selected="selected"><?php _e('All Categories'); ?></option>
<?php
$categories = (array) get_categories('get=all');

foreach ( $categories as $c ) {
echo "<option value='$c->term_taxonomy_id'>$c->cat_name</option>";
}
?>
</select>
</td>
</tr>
</table>

В результате получаем вот такую внушающую оптимизм, но пока еще не функционирающую картинку:

image

Продолжаем рыть землю. Открываем …wp-admin/includes/export.php

function export_wp($author='') {

Меняем:

function export_wp($cat='') {

Теперь найдем:

if ( $author and $author != 'all' ) {
$author_id = (int) $author;
$where = $wpdb->prepare(" WHERE post_author = %d ", $author_id);
}

И поменяем:

if ( $cat and $cat != 'all' ) {
$cat_id = $cat;
$ids = $wpdb->get_col("SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id=$cat");
$where = $wpdb->prepare(" WHERE ID IN(".join(',',$ids).")");
}

На выходе получаем XML файл, который можно импортировать встроенными средствами Wordpress.

24.11

Как ускорить работу Wordpress

Комментарии (8) wordpress

Собственно материал не мой, я просто наткнулся на проблему корявой работы ядра Wordpress, а один хороший человек – Владимир Колеснков ее решил. Проблема заключалась в том, что стандартный процесс работы виджетов календаря и архива, нагружает БД настолько серьёзно, что отважные служители серверов хостера бьют панику и отрубают услугу MySql (Вах!).

Вот тут можно найти весьма подробное описание проблемы, её решение, примеры кода и ещё много других разноцветных букв – http://blog.sjinks.org.ua/mysql/381-study-mysql/

01.09

Как вывести в rss мета-данные

Комментарии (5) wordpress

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

Задача решилась так. Ищем файл feed-rss2.php, он лежит в каталоге wp-include.
Сие и есть наша структура rss.

Читать дальше...

21.05

Как сделать upload в комментариях

Комментарии (20) wordpress

Возникла необходимость сделать возможность добавления файлов пользователями в комментариях. С последующем выводом ссылки в комментарии. Сделал так:

Читать дальше...

— Мы можем делать дешево, быстро и качественно. Выбирайте два любых показателя!
Фрилансерскиая хитрость

Rambler's Top100