如何在unctions.php中添加自定义过滤器

时间:2014-09-28 作者:JoaMika

我已经阅读了Wordpress codex,但我不知道如何编写过滤器。

我想使用一个名为:\'wpseo_sitemap_\' . $filter . \'_change_freq\'. 它希望您返回以下值之一:\'always\', \'hourly\', \'daily\', \'weekly\', \'monthly\', \'yearly\', \'never\'

我想将此设置为\'hourly\'

2 个回复
SO网友:david.binda

老实说,我必须查看源代码才能为您找到正确答案。

此特定筛选器的问题是$filter 零件是动态的,因此您必须知道要修改的特定频率。有很多选择:

homepage,

blogpage,

$post_type . \'_archive\',

$post_type . \'_single\',

$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 在名称中),您必须替换$filter 使用post\\u类型名称。Eg仅适用于页面:

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 这是第一个论点。例如:

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

SO网友:Anubhav

我知道答案晚了,但还有great article 由一位博主撰写。

如链接中所述

\'wpseo_sitemap_\' . $filter . \'_change_freq\'
the$filter 应替换为要更改的帖子类型,您可以将其替换为:

主页,

博客页面,

  • $post_type . \'_archive\',

  • $post_type . \'_single\',

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

    作者存档。

    $post_type 基于WordPress Codex的变量可以替换为:

    帖子(帖子类型:“帖子”)

    页面(帖子类型:“页面”)

    附件(帖子类型:“附件”)

    修订(帖子类型:“修订”)

    导航菜单(Post类型:“nav\\U menu\\U 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

    结束

    相关推荐

    注意:未定义索引:SUPPRESS_FILTERS

    我正在做一个主题的除虫工作,我希望有人能帮助我。我使用JustinTadlock创建的这个函数在博客页面上显示自定义帖子类型,并且将wp debug设置为true,我会收到一个通知:未定义索引:suppress\\u filters消息。代码如下:// Custom Post Type for the public blog posts to show on Index or blog page add_filter( \'pre_get_posts\', \'my_get_posts\' );&