Intereting Posts
Следующие и предыдущие кнопки для навигации Ограничение доступа к контенту Переместить значение одного настраиваемого поля в другое Разрешение учетных записей WordPress.org/com при самообслуживании получать изображения, прикрепленные к сообщению Добавить пользовательский фон в div на главной странице Как получить ссылку на следующую страницу сообщений? Как показать имя короткого кода в панели управления администратора Как я могу вызвать «предварительный пост» из wp_remote_get с проверкой подлинности? Настройка внешнего вида администратора для одного конкретного пользователя Поиск. Проверьте, является ли пост страницей на странице поиска. Фильтровать собственный тип сообщения по пользовательской таксомонии WPMU Если на сайте MU нет администратора, отключите сайт Перемещенная панель WordPress все еще указывает на сервер тестирования Существует ли максимальный предел количества пользователей, возвращаемых WP_User_Query?

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

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

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

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

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

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

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