Отрицание определенных слов из пользовательского выражения перезаписи?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Отрицание определенных слов из пользовательского выражения перезаписи?

Сообщение Anonymous »

У меня есть страница WP с именем «Книга» (/book/), на которой отображаются книги на разных языках. Переменные языка и главы
передаются как переменные запроса. Таким образом, структура URL-адреса выглядит следующим образом:

/book/english/ (отображается список глав на английском языке)
/book/english/foreword/ (это отображает предисловие книги на английском языке)

Вот что у меня получилось:

Код: Выделить всё

add_action('init', 'book_init');
add_filter('rewrite_rules_array', 'book_rewrite_rules_array');
add_filter('query_vars', 'book_query_vars');

function book_init() {
global $wp_rewrite;
$wp_rewrite->flush_rules();
}
function book_rewrite_rules_array($rewrite_rules) {
global $wp_rewrite;
$custom['(book)/(.+)/(.+)$'] = 'index.php?pagename=$matches[1]&book_language=$matches[2]&book_chapter=$matches[3]';
$custom['(book)/(.+)$'] = 'index.php?pagename=$matches[1]&book_language=$matches[2]';
return $custom + $rewrite_rules;
}
function book_query_vars($query) {
array_push($query, 'book_language', 'book_chapter');
return $query;
}
Все работает, но проблема в том, что добавленные мной правила перезаписи также перехватывают /book/feed/, чего я
не хочу. Итак, я ищу выражение, которое отрицало бы поток из '(book)/(.+)/(.+)$' и '(book)/(.+)$'

Также я хочу знать, если предположить, что предоставленные переменные запроса недействительны, какой фильтр мне следует использовать для проверки и как
я могу остановить продолжение работы WP и вместо этого заставить его отправлять ошибку 404 и отображается ли страница 404?

Подробнее здесь: https://stackoverflow.com/questions/312 ... expression
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»