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

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

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


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

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

Заказать мне работу
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.

01.09

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

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

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

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

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

21.05

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

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

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

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

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

Rambler's Top100