Вывод постов в WP с ссылкой в виде последних слов описания

iCospi
На сайте с 27.09.2011
Offline
97
1038

Добрый день, как можно сделать так, чтобы ссылкой на полный пост, были последние 2 или 3 слова описания. Точно так же, как на Яндекс Новостях:

Удобная проверка позиций (http://allpositions.ru/redirect/8497) | Быстрая покупка уник контента (http://advego.ru/62bgjaNHEc)
[umka]
На сайте с 25.05.2008
Offline
456
#1

В Яндекс.Новостях, с вероятностью 0.99, та часть текста, которая будет ссылкой, определяется редактором.

Лог в помощь!
iCospi
На сайте с 27.09.2011
Offline
97
#2

Вы ошибаетесь, ссылкой всегда являются три-четыри последних слова. Вот только как это реализовать, чтобы в loop последние слова описания поста, были ссылками?

[umka]
На сайте с 25.05.2008
Offline
456
#3
iCospi:
три-четыри последних слова

Так кто определяет, сколько именно? :)

В выдаче яндекса всё осмысленно, когда три, а когда четыре.

iCospi
На сайте с 27.09.2011
Offline
97
#4

[umka] скрипт определяет. Думаю если взглянуть не вооруженным взглядом, то заметно что в ссылку входят кроме слов ещё и союзы и.т.п. составные буквы и символы. Это явный признак работы скрипта, который обрезает определённое количество символов.

Вообщем это не главное, лучше помогите такое реализовать :) Не обязательно для WP. Можно на php или JS, если есть какие-нибудь функции или решения, которые позволяют такое сделать?

[umka]
На сайте с 25.05.2008
Offline
456
#5

Ну да, в принципе, может и автоматически. Просто попадались явные примеры, где ссылкой делались последние не четыре, а три слова, потому что перед ними были чьи-нибудь имя и фамилия.

А реализовать довольно просто.

Если объекта для рассмотрения взять одну строку, то разбиваем строку на отдельные слова в массив, с конца берём по одному слову, если это не предлог/союз/частица, увеличиваем счётчик на 1. Как только доходим до 4, по этму месту режем массив на 2 части и склеиваем в две строки, одну из которых делаем ссылкой.

Добавляем сотворённое в код, где выводится список.

K2
На сайте с 15.07.2011
Offline
5
K-2
#6

а можно:

  • получить рэндомом сколько, в конкретном случае, нам надо слов(пробелов)
  • и пойти от конца сообщения считая пробелы
  • а дальше как сказал, [umka]
  • PROFIT :)
iCospi
На сайте с 27.09.2011
Offline
97
#7

K-2 теоретически понятно, а кодом не поможете, как отсчитывать символы? Или название функций там, с помощью которых это можно сделать, а я уже потом разберусь.

palladin_jedi
На сайте с 13.07.2010
Offline
71
#8
iCospi:
название функций там, с помощью которых это можно сделать

PHP strpos(); или аналогичные.

Сайт о web-разработке и прочем (http://seazo.net)||Продвижение статьями под Google (http://short.seazo.net/ght4zf) Бесплатные консультации рефералам Sape (http://www.sape.ru/r.SWfwWOblBo.php) PHP и JS скрипты на заказ, создание сайтов с нуля и на CMS.
K2
На сайте с 15.07.2011
Offline
5
K-2
#9

iCospi, что-нить типа:

$str = get_the_content();
$pos = strrpos($str, ' ', -30);
$url = ' <a href="'. get_permalink() .'">'. trim(substr($str, $pos)) .'</a>';
$str = substr_replace($str, $url, $pos);
iCospi
На сайте с 27.09.2011
Offline
97
#10

K-2, большое спасибо. Ещё такой вопрос, ваш вариант отсчитывает просто 30 символов, а как можно изменить, чтоб он отсчитывал слово, то есть как то после пробела обрезать надо, но мои познания в php не могут в этом помочь :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий