Динамические ссылки на изображения в зависимости от представления «Отрывок/отдельная запись» в Wordpress

Я работаю над новой темой Wordpress; представление индекса по умолчанию отображает выдержки из последних сообщений. Некоторые сообщения будут касаться загрузки файлов и включать изображение, описание и ссылку на место, где размещены описанные файлы. Изображения для этих типов сообщений будут привязаны ссылками (другие типы сообщений могут содержать изображения, на которые нет ссылок).

Для этих типов сообщений я хотел бы, чтобы изображения ссылались на полные представления их записи (single.php) при отображении в выдержках, но чтобы те же изображения ссылались на внешнюю ссылку для загрузки при отображении как часть полного просмотра сообщения .

Я не уверен, как именно я бы это сделал. Любая помощь будет принята с благодарностью!


person Jayhal    schedule 09.07.2011    source источник


Ответы (1)


если ваша тема использует «the_excerpt()» для главной страницы, я думаю, вы можете добавить фильтр в functions.php и с помощью регулярного выражения изменить ссылку href со ссылки для загрузки на постоянную ссылку.

что-то вроде,

function replace_link($content) {
   if (is_home())
      return preg_replace('regular_expression', get_permalink(), $content);
   else
      return $content;
}
add_filter('the_excerpt', 'replace_link');

Я не могу создать реальное регулярное выражение, не зная, как выглядит ваша ссылка для скачивания.

person yitwail    schedule 09.07.2011
comment
Ссылки, указывающие на внешний URL-адрес, указывают на другую страницу, на которой размещены файлы, а не на сами файлы напрямую. - person Jayhal; 10.07.2011
comment
Я использую плагин «Advanced Excerpt», могу ли я добавить этот php в functions.php или, возможно, мне нужно будет отредактировать файлы плагина? Просто прошу быть полностью уверенным. Кстати, спасибо! - person Jayhal; 10.07.2011
comment
@Jayhal, не должно иметь значения, на что указывают ссылки; пока вы можете идентифицировать его, вы можете изменить его с помощью данного кода. Я думаю, вы можете просто вставить его в functions.php, но я не знаком с плагином, который вы используете. Пожалуйста... сделайте мне одолжение и проголосуйте за мой ответ. :) - person yitwail; 10.07.2011
comment
Я просмотрел плагин. Он использует хук get_the_excerpt. В предоставленном фрагменте используется хук the_excerpt, который выполняется после get_the_excerpt. Я думаю, это то, что ты хочешь - person yitwail; 10.07.2011
comment
Отлично, спасибо! Это новая учетная запись, там написано, что мне нужно 15 баллов для этого.. Я не забуду вернуться, когда накоплю достаточно и наберу это для вас :) - person Jayhal; 10.07.2011
comment
@Джейхал, мой плохой. Я думаю, вы можете принять мой ответ, нажав на большую галочку, даже если вы новичок. И добро пожаловать в СО. :) - person yitwail; 10.07.2011
comment
О, извините! Лол, я точно помню, что нажал на галочку, моя ошибка. Спасибо еще раз. :) - person Jayhal; 10.07.2011
comment
Хм, я пытаюсь реализовать это сейчас, и я не уверен, где внутри functions.php я Любая помощь? - person Jayhal; 31.07.2011