将函数设置为仅为CPT运行

时间:2017-04-02 作者:Iurie

我发现an answer 作者在代码中注释post_type_link 过滤器是(仅?)对于CPT。他/她如何确保他的代码只针对CPT运行?

来自WordpressCodex:

post_type_link 是应用于的永久链接URL的筛选器a postcustom post type 在函数get\\u post\\u permalink返回之前。

讨论中的代码:

add_filter( \'post_type_link\', \'custom_post_permalink\' ); // for cpt post_type_link (rather than post_link)
function custom_post_permalink ( $post_link ) {
    global $post;
    $type = get_post_type( $post->ID );
    return home_url( $type . \'/\' . $post->post_name . \'.html\' );
}

1 个回复
最合适的回答,由SO网友:Paul \'Sparrow Hawk\' Biron 整理而成

在返回结果之前,get_permalink() 根据相关帖子的post\\u类型,在其生成的永久链接上应用四个过滤器中的一个:

  1. post_link, 当post\\u type==“post”时page_link, 当post\\u type==“page”时,通过get_page_link()
  2. attachment_link, 当post\\U type==“附件”时,通过get_attachment_link()
  3. post_type_link, 当post\\U类型不是上述类型之一(即CPT)时,通过get_post_permalink()