Хук post_type_link в WPFTS
Хук post_type_link в WordPress — это фильтр, позволяющий изменять URL-адрес, генерируемый для произвольного типа поста. WPFTS использует этот хук для применения Smart Excerpts к ссылкам на посты произвольных типов, отображаемые в результатах поиска. Логика работы аналогична фильтрам attachment_link и page_link.
Что делает WPFTS при вызове post_type_link:
-
Проверка условий: WPFTS проверяет, выполняются ли следующие условия:
-
Плагин активен, и опция Smart Excerpts включена (is_smart_excerpts).
-
Запрос выполняется на странице результатов поиска (is_search()).
-
Запрос не из административной панели (!is_admin()).
-
Ссылка выводится внутри цикла WordPress, или в Gutenberg блоке, выводящем заголовок поста (in_the_loop()).
-
Или, если $wpfts_core->forced_se_query не равен false (принудительный вызов Smart Excerpts).
-
-
Применение Smart Excerpts к ссылке: Если все условия выполнены, WPFTS создает объект WPFTS_Result_Item для поста и вызывает его метод TitleLink(), который возвращает модифицированную ссылку.
Важные функции, задействованные в обработке post_type_link:
-
WPFTS_Core::get_option()
-
is_search()
-
is_admin()
-
in_the_loop()
-
WPFTS_Result_Item::TitleLink()
-
WPFTS_Core::ForceSmartExcerpts() (проверяется значение $wpfts_core->forced_se_query)
Как это использовать в разработке аддонов:
Разработчикам аддонов, работающих с произвольными типами постов, важно понимать, что WPFTS может изменять ссылки на эти посты в результатах поиска. Если ваш аддон также модифицирует ссылки на посты, убедитесь, что ваша логика не конфликтует с WPFTS.
Дополнительные замечания:
-
Smart Excerpts применяются к ссылкам на посты только в результатах поиска.
-
Фильтр post_type_link вызывается для каждого поста произвольного типа, отображаемого на странице результатов поиска.
-
WPFTS добавляет дополнительную проверку для совместимости с блочным редактором Gutenberg.