Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Блоги и Социальные сети
»
Тема:
Правильный вывод произвольной rss-ленты?
Новая тема
Ответить
цитата
31/08/10 в 23:43
log
В общем есть код:
Код:
<?php if (have_posts()) : while (have_posts()) : the_post(); update_post_caches($posts); ?>
<?xml version="1.0" encoding="UTF-8"
<rss version="2.0"
<channel>
<item>
<title><?php the_title_attribute(); ?></title>
<link><?php the_permalink(); ?></link>
<description><?php the_excerpt(); ?></description>
<category><?php
$category = get_the_category();
echo $category[0]->cat_name;
?></category>
<descriptionfull>
<?php global $more; $more = 1; the_content(); ?>
</descriptionfull>
</item>
<?php endwhile; ?>
</channel>
</rss>
Сразу говорю, что лента специфическая тот же тег <descriptionfull>. Но не в этом суть а в том, что мне нужно во всех тегах (title, link, description, category и descriptionfull) заменить встречающиеся в тексте символы < > & ' " на соответствующие элементы:
& на &
< на <
> на >
' на '
" на "
Вопрос, как это сделать?
цитата
31/08/10 в 23:52
kodek
$text = str_replace("\"", """, $text);
Ну и т.п.
Только для & нужно проверку написать, чтобы в конструкции
&
она не меняла символ.
PS Почему не будет? По причине?
У меня отлично работает такое.
Последний раз редактировалось: kodek (
31/08/10 в 23:54
), всего редактировалось 2 раз(а)
цитата
31/08/10 в 23:53
log
нет так работать не будет, проверенно!
цитата
31/08/10 в 23:54
log
Это ж ВП, там либо фильтр писать надо либо хрен его знает как, уже намучился с кодом, а бестолку...
цитата
01/09/10 в 00:03
kodek
Действительно, с WP я дела не имел. Сейчас посмотрел код ещё раз. Таки да. Функции типа этой the_content() сами организуют вывод получается. Тогда получается - их модифицировать, чтобы они отдавали просто результат, в виде строки, которую можно обработать. Либо этот же обработчик встраивать им внутрь.
PS А просто пройтись по базе SQL запросом и всё поменять - не вариант?
цитата
01/09/10 в 00:07
log
kodek писал:
PS А просто пройтись по базе SQL запросом и всё поменять - не вариант?
Нет, конечно. Мне базу портить ни к чему, мне нужно рссленту сделать специфическую.
цитата
01/09/10 в 00:18
log
Получается, что нужно сделать фильтр, типа этого:
Код:
function new_content_replace($content) {
htmlspecialchars(StripSlashes($content));
}
add_filter('the_content', 'new_content_replace');
?>
только значения $content и the_content неправильные, т.к. из-за них the_content(); вообще не отображается...
Я уже не говорю, про функции тайтл, линк и т.д.
цитата
01/09/10 в 00:22
kodek
А если сделать банально - взять вывод этой ленты (там же выводится чего-то?!), которую стандартный скрипт выдаёт. И её уже, целиком, обработать своей функцией? Ну и подать на выход снова. RSS ридерам, разумеется, подсовывать уже вторую ленту, обработанную.
цитата
01/09/10 в 01:14
log
Так тоже пробовал, но не получилось
Код просто не выполняется, да и вообще, хотелось бы почеловечески реализовать, а не абы как...
цитата
01/09/10 в 13:06
log
Уже не актуально!
Новая тема
Ответить
Эта страница в полной версии