WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Шаблоны сайтов на русском

Создание своего url для контента созданного в плагине

Только начал использовать wp и не могу понять как делать свой url.

создал плагин movievideo, там всего 1 файл movievideo.php.

в нем инициализировал создание таблицы, api запросы, 2 страницы админки (просмотр и удаление, добавление), хук для главной страницы / (если нет видео то просто текст - добавьте видео).

у видео есть в таблице записи, надо их выводить по url, где mysite.test/movie/:id, должно выводить запись по id, если записи нет, то 404 error.

не могу понять как мне сделать такой вывод

как создать url и вывести его на сайт

помогите пожалуйста с реализацией

0
Никита
10 дней назад
  • 0

    Можно двумя способами сделать.
    Первый - создать шорткод с нужным функционалом, который потом разместить на странице. к урл этой страницы можно подставлять разные гет параметры и выводить разные видео.

    Либо пойти более сложным способом.

    Зарегистрировать новый параметр запроса:

    add_filter( 'query_vars', function( $query_vars ) {
    	$query_vars[] = 'video';
    	return $query_vars;
    } );
    

    Затем создать в папке с темой новый шаблон, например my_video.php

    И затем подключить его:

    function custom_template( $template ) {
    
    if( get_query_var('video')) 
     {
    
      return locate_template( 'my_video.php' ); 
    
    } 
    
      return $template;
    
    }
    add_filter( 'template_include', 'custom_template');

    Теперь по адресу site.ru/?video=455 будет отображаться ваш шаблон.
    Можно конечно еще дополнительно проверку сделать и проверять в базе существование записи с таким ид.

    А это если нужно чпу:

    add_filter( 'generate_rewrite_rules', function ( $wp_rewrite ) {
    	$wp_rewrite->rules = array_merge(
    
    ['video/([^/]+)/?$' => 'index.php?video=$matches[1]'],
    
    	$wp_rewrite->rules
    	);
    } );
    
    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация