Как удалить пули из нескольких пользовательских типов сообщений

В последнее время я видел несколько сообщений о том, что люди легко удаляют пули из одного настраиваемого типа сообщений с помощью следующей функции:

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' ); 

Однако мне не удалось заставить это работать, когда я добавляю несколько пользовательских типов сообщений. Может ли кто-нибудь помочь в этом / объяснить?

Solutions Collecting From Web of "Как удалить пули из нескольких пользовательских типов сообщений"

Похоже, у вас есть, если вы делаете противоположное тому, что хотите. Вы возвращаете неизмененную ссылку, если вы используете «тип мебели» или «поп-теги».

Это должно работать:

 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; }