С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 31/08/10 в 23:43 |
В общем есть код:
Код: |
<?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) заменить встречающиеся в тексте символы < > & ' " на соответствующие элементы:
& на &
< на <
> на >
' на '
" на "
Вопрос, как это сделать?
|
|
|
|
С нами с 07.10.01
Сообщения: 4835
Рейтинг: 3672
|
Добавлено: 31/08/10 в 23:52 |
Код: [развернуть] | $text = str_replace("\"", """, $text);
|
Ну и т.п.
Только для & нужно проверку написать, чтобы в конструкции & она не меняла символ.
PS Почему не будет? По причине?
У меня отлично работает такое.
Последний раз редактировалось: kodek (31/08/10 в 23:54), всего редактировалось 2 раз(а)
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 31/08/10 в 23:53 |
нет так работать не будет, проверенно!
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 31/08/10 в 23:54 |
Это ж ВП, там либо фильтр писать надо либо хрен его знает как, уже намучился с кодом, а бестолку...
|
|
|
|
С нами с 07.10.01
Сообщения: 4835
Рейтинг: 3672
|
Добавлено: 01/09/10 в 00:03 |
Действительно, с WP я дела не имел. Сейчас посмотрел код ещё раз. Таки да. Функции типа этой the_content() сами организуют вывод получается. Тогда получается - их модифицировать, чтобы они отдавали просто результат, в виде строки, которую можно обработать. Либо этот же обработчик встраивать им внутрь.
PS А просто пройтись по базе SQL запросом и всё поменять - не вариант?
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 01/09/10 в 00:07 |
kodek писал: | PS А просто пройтись по базе SQL запросом и всё поменять - не вариант? |
Нет, конечно. Мне базу портить ни к чему, мне нужно рссленту сделать специфическую.
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 01/09/10 в 00:18 |
Получается, что нужно сделать фильтр, типа этого:
Код: |
function new_content_replace($content) {
htmlspecialchars(StripSlashes($content));
}
add_filter('the_content', 'new_content_replace');
?>
|
только значения $content и the_content неправильные, т.к. из-за них the_content(); вообще не отображается...
Я уже не говорю, про функции тайтл, линк и т.д.
|
|
|
|
С нами с 07.10.01
Сообщения: 4835
Рейтинг: 3672
|
Добавлено: 01/09/10 в 00:22 |
А если сделать банально - взять вывод этой ленты (там же выводится чего-то?!), которую стандартный скрипт выдаёт. И её уже, целиком, обработать своей функцией? Ну и подать на выход снова. RSS ридерам, разумеется, подсовывать уже вторую ленту, обработанную.
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 01/09/10 в 01:14 |
Так тоже пробовал, но не получилось
Код просто не выполняется, да и вообще, хотелось бы почеловечески реализовать, а не абы как...
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 01/09/10 в 13:06 |
Уже не актуально!
|
|
|
|