Помощник
|
Удаление картинки только из первых 100 знаков поста |
Aborigen
|
Сообщение
#1
|
||
|
|
||
|
|||
SpaceX |
25.12.2015, 20:00;
Ответить: SpaceX
Сообщение
#2
|
|
как вариант поставить проверку..
Код $pos=STRPOS($content, "<img"); IF(($pos !== FALSE) AND ($pos <= 100)){ ... } вот так правильно... Сообщение отредактировал SpaceX - 25.12.2015, 20:05 |
|
|
Aborigen
|
Сообщение
#3
|
|
SpaceX, Я так понял, что нужно ставить мой код туда, где три точки? Но тогда код не работает.
-------------------- |
|
|
mmkulikov |
26.12.2015, 14:18;
Ответить: mmkulikov
Сообщение
#4
|
|
Код function deleteFirstImages($content) { $pos=STRPOS($content, "<img"); IF(($pos !== FALSE) AND ($pos <= 100)){ $content = preg_replace("/<img[^>]+\\>/i", "", $content, 1); } return $content; } add_filter ('the_content', 'deleteFirstImages'); Где-то так. На синтаксические/грамматические ошибки не проверял -------------------- VPS от 5€ |
|
|
IQ_Крым |
30.12.2015, 0:13;
Ответить: IQ_Крым
Сообщение
#5
|
|
|
Я так понимаю, в переменной $content лежит ваш текст, из которого нужно убрать картинки? Но ведь первые 100 знаков включают в себя и html код? Если там html-кода будет очень много, то в первые 100 знаков могут войти всего несколько слов или даже ни одного. Я вижу тут только один алгоритм, у него есть минусы: он сложен и его выполнение программой будет занимать много времени. Описываю.
Можно написать цикл, который будет разделять текст контента на массив, содержащий html-части и текст. К примеру, у вас есть: Код <p>На днях <a href='//ru.ru/я'>я</a> посетил замечательный немецкий город. Делюсь впечатлениями:<img src='//ru.ru/img/1.png'></p> в массив будет записываться: Код $arr = arrey( 1=> "<p>", 2=> "На днях ", 3=> "<a href='//ru.ru/я'>", 4=> "я", 5=> "</a>", 6=> " посетил замечательный немецкий город. Делюсь впечатлениями:", 7=> "<img src='//ru.ru/img/1.png'>", 8=> "</p>", ) и т.д. В процессе записи этого массива вы проверяете записываемый элемент. Когда попадается фрагмент текста, вы считаете кол-во символов и прибавляете его к переменной $num_characters. Если попадается html-фрагмент - удаляете из него все теги img перед записью в массив. При каждой итерации проверяете переменную $num_characters и когда её значение перейдёт за 100 - завершите цикл, загрузив всю оставшуюся необработанную часть кода в последний элемент массива. После этого снова собираете все элементы массива в одну переменную $content Однако, я бы вам не рекомендовал использовать этот метод именно в шаблоне, он допустим разве что при записывании статей в БД. Можно попробовать другие методы решения, на front-end. Хотелось бы увидеть сам сайт, чтобы понять, с какой именно проблемой имеем дело.
Сообщение отредактировал IQ_Крым - 30.12.2015, 0:14 |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Англоязычный SEO-копирайтинг от $3/100 слов от NeedmyLink | Первая статья бесплатно | 5 | Needmylink1 | 1469 | Сегодня, 16:01 автор: Needmylink1 |
|
Как в пушсетках покупают по 100-200 тысяч кликов за день? | 2 | Boymaster | 714 | Вчера, 17:52 автор: Boymaster |
|
Adtrafico - Офферы из первых рук. CPA партнёрка от Команданте | 440 | Adtrafico | 120833 | 23.4.2024, 16:41 автор: Adtrafico |
|
Incogniton - управляйте множеством браузерных профилей. 100% антидетект! | 104 | Incogniton | 33337 | 21.4.2024, 19:19 автор: Incogniton |
|
Dao.AD: пуши, попсы и не только! ТОП монетизация и арбитраж. | Акция 100 % отчисления! | 90 | Daopush | 27377 | 19.4.2024, 18:27 автор: Daopush |
Текстовая версия | Сейчас: 25.4.2024, 23:19 |