Суть такая. Клиент жалуется, что тупо и нагло тырят контент с его сайтов. Поглядев, что он там "набложил" я удивился, что километровые посты он выкладывал прямо-таки на главную. Я его застыдил, что мол во-первых поэтому и тырят, а во-вторых читать ведь неудобно. Говорю мол нужно делать маленькую "выдержку"(цитата), что мол поле есть такое специальное, а в последних версиях очень замечательно работает тег <!– more –>
Застыдить то застыдил его, но видимо сильно, потому как он теперь ноет и мучает меня. Говорит, что же мол делать? За 2 года столько записей накопилось, а все перелопачивать "долго и муторно".
В общем подумал я, поговорил с ним и порешили, что нужно как-то автоматом вставить тег <!– more –> после пятого предложения (если этого тега изначально не было). И кроме этого в каждую запись вставить рекламку ссылку на оригинал статьи (до тега more).
Порешили, но сделать что-то мне тяму не хватает. Итак как я это вижу:
делаю плаг, который будет работать по типу:
add_action('the_content', 'j_zamena');
работа его такая:
1. Проверяю есть ли в статье изначально тег <!– more –>, если есть, то выход, если нет, то дальше (это могу)
2. При помощи регулярок или разбиения по знакам препинания (не суть важно), нахожу начало 6-го предложения (это могу)
3. Вставляю в нужное место тег <!– more –> и прямую ссылку на эту статью (это могу)
4. Обновляю (перезаписываю обновлённый пост обратно в базу) (ВОТ ЭТО НЕ МОГУ) 🙂
5. Отдаю обновлённый (выход короче)
Вот и вопрос, как сделать 4-й пункт? (это хочу сделать, что плаг не шуровал постоянно одно и то же, а мог бы заканчивать работу на 1-м пункте)
p.s. если я везде всталю <!– more –>, RSS тоже будет до него отдаваться? Так?
а плагин auto-more поставить не желаете?
Плагин хорош, вот только я, открыв код, не разобрался как он работает. В принципе это и не важно, вот если бы уважаемый Ю.Б. вставил бы ещё в $breakpoints тег <font , а то я не понял как это дело добавить.
JawsIk, ну уж кто-кто, а Вы и сами можете это сделать. Там всё просто: тег=>смещение. Смещение нужно для того, чтобы показать плагину, где резать – перед тегом или после него.
Ну и последнее, чего нехватает, это чтобы оно записывало (обновляло) обратно в базу. Как это сделать?
Чтобы было именно: Открыть-проверить-(найти и )вставить-перезаписать
А смысл?
>> …как сделать 4-й пункт? (это хочу сделать, что плаг не шуровал постоянно одно и то же, а мог бы заканчивать работу на 1-м пункте (стадия проверки наличия тега more)).
Прикрутите этот обработчик куда-нибудь в область action ‘save_post’ или ‘wp_insert_post’ или фильтром на pre_post_content. Точно не скажу, не знаю, а опыты ставить лень. 🙂
Эм… обратите внимание на стартовый пост. Записи то уже есть и поэтому ни save_post, ни wp_insert_post и т.п. операции не прокатят. Ведь записи уже есть.