Intereting Posts
Будущий идентификатор сообщения не отображается Как избежать повторения подобных свойств для всех tds таблицы в сообщении wordpress Как я могу автоматически создавать сообщения подкастов из содержимого конкретного каталога? Как запросить в течение недели с помощью key => value Обозначение аргумента WP_Query? TED говорит о встроенных видео, отключенных боковой панелью Проблема с тегом <code> Будет ли размещение пользовательских шаблонов в подкаталоге нарушить любую собственную функциональность WordPress Тема темы имен CSS поиск по запросу пользовательского поля Создание пользовательских полей ввода на стороне администратора Получить список ACF Repeater-Fields как массив Как добавить параметры WordPress в виджеты боковой панели получить сообщение id из wp_insert_post для get_template_part Является ли WordPress хорошим вариантом для этого …? создать страницу подменю – функция ошибки не найдена или неверное имя функции

Как добавить настраиваемый фильтр в 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