如何从多个自定义POST类型中删除插件

时间:2017-05-12 作者:Laurel

我最近看到了一些帖子,上面有人很容易就把鼻涕虫从a single 通过以下功能自定义帖子类型:

function hf_remove_slug( $post_link, $post, $leavename ) {

    if((\'pop-tags\' == $post->post_type || \'furniture-type\' == $post->post_type) && \'publish\' == $post->post_status) {
        return $post_link;
    }

    $post_link = str_replace( \'/\' . $post->post_type . \'/\', \'/\', $post_link 
);

   return $post_link;
}
add_filter( \'post_type_link\', \'hf_remove_slug\', 10, 3 );

function hf_parse_request( $query ) {

    if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query[\'page\'] ) ) {
        return;
    }

    if ( ! empty( $query->query[\'name\'] ) ) {
        $query->set( \'post_type\', array( \'post\', \'pop-tags\', \'furniture-type\', \'page\' ) );
    }
}
add_action( \'pre_get_posts\', \'hf_parse_request\' );
然而,当我添加多个自定义帖子类型时,我无法实现这一点。有人能帮忙/解释一下吗?

1 个回复
最合适的回答,由SO网友:jbwagner 整理而成

看起来你的if做了与你想要的相反的事情。如果在“家具类型”或“流行标签”上,则返回未更改的链接。

这应该可以:

function hf_remove_slug( $post_link, $post, $leavename ) {

    if((\'pop-tags\' == $post->post_type || \'furniture-type\' == $post->post_type) && \'publish\' == $post->post_status) {
        $post_link = str_replace( \'/\' . $post->post_type . \'/\', \'/\', $post_link);
        return $post_link;
    }

   return $post_link;
}

结束

相关推荐

Using page slug in wp_query

我目前正在为一家我们的客户律师事务所建立一个网站。我们有两种自定义的帖子类型,律师和案例,我们需要在整个网站的各个区域将它们链接在一起。例如,当访问一个案件页面时,侧栏应该反映处理该案件的律师,每个律师页面应该显示他们处理过的案件。我目前已经对其进行了设置,以便每次创建新案例时,都会在自定义分类法“案例日志”中创建一个条目。通过这种方式,只需进入配置文件后端并单击相关配置文件,即可为案件指派律师。我的目标的后半部分已经实现了这一点(在他们的个人资料中列出了工作过的案例),但还没有能够实现侧边栏列表。这是我