Intereting Posts
Каков наилучший способ добавления функциональности подписки на один пользовательский тип сообщения? Как обрабатывать структуру страницы / таксономии / сообщения без того, чтобы wordpress путался с URL-адресом Разница между stylesheet_directory и template_directory После миграции изображения отображаются на предварительном просмотре страницы, но не на фактической странице как перечислить весь поддомен в wordpress multiuser Я обновил код своей собственной темы и css Могу ли я изменить get_template_directory_uri ()? Вставить YouTube, войти, чтобы купить и способы оплаты Как отключить определенную страницу для определенного пользователя Как защитить определенные загруженные файлы от доступа неавторизованными пользователями в WP-multisite Как автоматизировать настройку темы, страниц, виджетов и т. Д. Для нового сайта на нескольких сайтах? Дайвинг в магистраль и API REST Добавить ссылку в приложение для старых сообщений Использование собственных классов на тестах Wp Unit Сообщения о событиях по запросу

Как добавить настраиваемый фильтр в functions.php

Я прошел через WordPress codex, но не могу понять, как написать фильтр.

Я хотел бы использовать фильтр: 'wpseo_sitemap_' . $filter . '_change_freq' 'wpseo_sitemap_' . $filter . '_change_freq' 'wpseo_sitemap_' . $filter . '_change_freq' . Он ожидает, что вы вернете одно из следующих значений: 'always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'

Я хотел бы установить это 'hourly'

Solutions Collecting From Web of "Как добавить настраиваемый фильтр в functions.php"

Честно говоря, я должен был увидеть исходный код, чтобы получить правильный ответ для вас.

Проблема с этим конкретным фильтром заключается в том, что часть $filter является динамической, и поэтому вам нужно знать, какую конкретную частоту вы хотите изменить. Существует множество вариантов:

homepage ,

blogpage ,

$post_type . '_archive' $post_type . '_archive' ,

$post_type . '_single' $post_type . '_single' ,

$c->taxonomy . '_term' $c->taxonomy . '_term' ,

author_archive .

Итак, как только вы выясните, какой фильтр вы хотите изменить (я выбрал домашнюю страницу), вы добавляете следующее к своим функциям.php

 add_filter( 'wpseo_sitemap_homepage_change_freq', 'my_custom_homepage_freq', 10, 2 ); function my_custom_homepage_freq( $default, $url ) { return 'hourly'; } 

Изменение author_archive также легко, поскольку вы заменяете часть $filter в имени фильтра author_archive .

В случае $post_type . '_single' $post_type . '_single' (или другой с $post_type в имени), вы должны заменить часть $filter именем post_type. Например, только для страниц:

 add_filter( 'wpseo_sitemap_page_single_change_freq', 'my_custom_page_freq', 10, 2 ); function my_custom_page_freq( $default, $url ) { return 'hourly'; } 

Чтобы раскрыть вам часть выяснения того, что может стоять в $filter в вашем исходном вопросе, мне пришлось проверить файл ./inc/class-sitemaps.php (можно увидеть здесь, в Subversion: http: //plugins.svn .wordpress.org / wordpress-seo / trunk / inc / class-sitemaps.php ), где на строке 578 есть функция, называемая filter_frequency и она строит фильтр. Эта функция filter_frequency вызывается несколько раз изнутри файла и содержит $filter part как первый аргумент. Например:

 $this->filter_frequency( 'homepage', 'daily', $this->home_url ) 

Я знаю, что ответ задерживается, но есть замечательная статья, написанная одним блоггером.

Как поясняется в ссылке

 'wpseo_sitemap_' . $filter . '_change_freq' 

$filter следует заменить на тип сообщения, который вы хотите изменить, вы можете заменить его:

  • Домашняя,

  • blogpage,

  • $post_type . '_archive' $post_type . '_archive' ,

  • $post_type . '_single' $post_type . '_single' ,

  • $c->taxonomy . '_term' $c->taxonomy . '_term' ,

  • author_archive.

в то время $post_type переменная $post_type основанная на WordPress Codex, может быть заменена на:

  • Сообщение (Тип сообщения: «сообщение»)

  • Страница (Тип сообщения: 'страница')

  • Приложение (Тип сообщения: «приложение»)

  • Редакция (Тип сообщения: «ревизия»)

  • Меню навигации (Тип сообщения: «nav_menu_item»)

в конце для отдельной записи ваш код должен выглядеть так:

 add_filter( 'wpseo_sitemap_page_single_change_freq', 'my_custom_page_freq', 10, 2 ); function my_custom_page_freq( $default, $url ) { return 'hourly'; } 

После добавления этого в свои функции темы вернитесь к исходному плагину Yoast Seo, отключите функциональные возможности XML-сайта, сохраните его, затем снова включите и перезагрузите www.yoursite.com/page-sitemap.xml