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

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

Сейчас работаю над:


  • Разработка одного стартапа

    Текущий статус - делаем функционал.

  • Смена функционала на popsop.com

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

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

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

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

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

Формируем запрос и загоняем в переменную вывод картинки.

<php
  $query = 'SELECT * FROM '.$wpdb->postmeta.' WHERE post_id = '.$post->ID.' AND meta_key LIKE "ImageURL" LIMIT 1';
  $image = $wpdb->get_row($query, OBJECT);
  $thumb = ($image ? '<img src="'.$image->meta_value.'" alt="'.$post->post_title.'" /><br />' : '' );
?>

Мне нужно вывести картинку в акурат над аннотацией. Ищем:

<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>

и меняем его на:

<description>< ![CDATA[<?php print $thumb; the_excerpt_rss() ?>]]></description>

Где $thumb и есть моя картинка.

Все. Делов то, да? Таким образом можно выводить любые метаданные.

Метки:

Комментарии

  1. 1
    Plohoy (14.09.2008) #

    Огромное спасибо

  2. 2
    Vladimir (27.09.2008) #

    1. Вместо ‘LIKE “ImageURL”‘ всё же лучше использовать проверку на равенство - она гарантированно будет использовать индексы, если это возможно.
    2. А вметсто запроса лучше было бы использовать get_postmeta($post->ID, ‘ImageURL’), так как это официальный способ (использовать API всё же лучше, чем обращаться к БД напрямую).
    3. К $post->post_title, вставляемому в ALT картинки, стоит применить attribute_escape(). Это гарантирует, что XML не побьётся, если в заголовке поста используются обыкновенные кавычки или даже HTML-тэги

    А в целом идея супер!

  3. 3
    Максим Покровский (27.09.2008) #

    Спасибо за рекомендации. Применю.

Оставить комментарий

Вы можете использовать простые теги форматирования HTML (вроде <a>, <ul> and others). Чтобы вставить пример код, используйте
<code lang="php">$a = "hello";</code> (поддерживаемые языки: ruby, php, yaml, html, css, csharp, javascript). Также Вы можете использовать <code>$a = "hello";</code>, синтаксис не будет подсвечен. Если вы не хотите использовать тег <code>, замените символ < на &lt;



— Люди делятся на заказчиков и тех, кто может ими стать.
(девиз успешного фрилансера)

Rambler's Top100