#wordpress #custom-post-type #permalinks #wp-rewrite
Вопрос:
Я хочу создать удобную читаемую структуру постоянных ссылок для моего пользовательского типа сообщений (CPT). Мой CPT «фильм» имеет следующую запись перезаписи movie/movie_name"
(все работает нормально).
Теперь я хочу добавить arg
следующее: movie/movie_name/arg
и использовать arg в моем файле шаблона в качестве переменной php. Но очевидно, что это приведет к не-найденной-странице. Как я могу достичь этой цели?
редактировать: я хочу, чтобы это было в УДОБНОМ формате URL, это означает, что я не хочу использовать GET для этого.
Ответ №1:
Вы можете передать это как movie/movie_name?movie_arg=movie_value
. Он будет доступен с $_GET['movie_arg']
. Конечно, вам нужна дополнительная очистка для обработки этих данных.
Чтобы иметь возможность прочитать это в WordPress, добавьте параметры в query_vars
фильтр
function add_movie_arg_to_query_vars( $qvars ) {
$qvars[] = 'movie_arg';
return $qvars;
}
add_filter( 'query_vars', 'add_movie_arg_to_query_vars' );
Примечание: это не должно совпадать с зарезервированными параметрами запроса WordPress
Таким образом, он будет доступен в вашем шаблоне с get_query_var('movie_arg')
print_r( get_query_var('movie_arg') ) // movie_value
Более подробная информация здесь
Комментарии:
1. Я должен иметь его в УДОБНОМ формате URL, это означает, что я не хочу использовать GET для этого.
2. Используйте Переменные Запроса. это в основном дружественная перепись $_GET. В примере Ihar ваш URL-адрес будет выглядеть примерно так: /movie/имя_фильма/movie_arg/your_arg
3. @SahriarSaikat я попытался запросить Vars, это не сработало.
4. @dede что именно не сработало? предоставьте более подробную информацию. Есть ли какая-либо ошибка PHP или что-то еще?