Intereting Posts
Использование цикла для отображения терминов, связанных с сообщением Изменение языка WordPress на основе пользовательских настроек установить постоянную ссылку для CPT Как получить постоянную ссылку на страницу при загрузке моего плагина Действительно ли WordPress способен на что угодно, кроме ведения блога? Синтаксические ошибки короткого кода Является ли скрипт для замены строк влияющим на вывод короткого кода? В post.php, как я могу удалить onbeforeunload? wp_insert_post – изображение из библиотеки Копирование коротких кодов в другом коротком коде Любой способ использовать собственный параметр для встраивания youtube без использования iframe? Плагины успешно загружены через FTP, но они не на моем сайте Страница персонализированной категории сообщений не работает Нечетный файл сценария пытается загрузить Измените разметку обложки post / entry в генезе childtheme

Как установить шаблон возврата для пользовательского типа сообщения в плагине?

Мой пользовательский плагин создает настраиваемый тип сообщения, и я хочу использовать тему моего собственного файла "single-my_custom_cpt.php" . Тем не менее, я хочу сохранить его в своей папке плагина и разрешить его переписывать в папку активных тем веб-сайтов.

Например, single-my_custom_cpt.php существует в /plugins/my-plugin/ folder, а кто-то создает /themes/site-theme/single-my_custom_cpt.php . Я хочу, чтобы файл темы появился первым, и если он удален, файл плагина появится.

Чтобы предоставить шаблон по умолчанию, который можно перезаписать с помощью темы hook в template_include как показывают связанные вопросы. Вы получаете шаблон, который WordPress хочет использовать в качестве параметра. Если это не тот файл, который вы хотите – замените его на файл вашего плагина:

 add_filter( 'template_include', 'wpse_57232_render_cpt', 100 ); /** * Provide fall back template file for a custom post type single view. * * @return void */ function wpse_57232_render_cpt( $template ) { // Our custom post type. $post_type = 'my_custom_cpt'; // WordPress has already found the correct template in the theme. if ( FALSE !== strpos( $template, "/single-$post_type.php" ) ) { // return the template in theme return $template; } // Send our plugin file. if ( is_singular() && $post_type === get_post_type( $GLOBALS['post'] ) ) { // return plugin file return dirname( __FILE__ ) . "/single-$post_type.php"; } // Not our post type single view. return $template; }