Первый раз создавая плагин для Wordpress
.
Я программно добавляю страницу на свой сайт, как в моем плагине:
$page_check = get_page_by_title( $page_path );
$page = array(
'post_type' => 'page',
'post_title' => $page_title,
'post_content' => $page_content,
'post_status' => 'publish',
'post_author' => $author->ID,
'post_slug' => $page_path
);
if (!isset($page_check->ID) && !get_page_by_path($page_path)) {
$page_id = wp_insert_post($page);
}
Я хочу использовать эту конкретную страницушаблон страницы campaigns.php
, который у меня есть в папке подключаемых модулей (/wp-content/my-plugin/campaigns.php
)
Я понимаю, что могу обновить метаданные этой страницы следующим образом:
update_metadata( 'page', $page_id, '_wp_page_template', 'your_custom_template' );
Как указать your_custom_template
кусок к моему campaings.php
?Можно ли это сделать?Спасибо.
ОБНОВЛЕНИЕ:
С помощью ниже я понимаю, что это должно работать:
// $template resolves correctly to the full path to the `php` file
$template = $settings->plugin_path . 'campaigns.php';
update_post_meta($page_id, '_wp_page_template', $template);
Путь / файл плагина:
$template = '/home/vagrant/src/wptest/wp-content/plugins/pm/campaigns.php';
Ностраница, при входе в экран редактирования, по-прежнему указывает на шаблон по умолчанию.Выбор шаблона вручную не имеет значения для страницы.Что я пропустил?
Это мой основной campaigns.php
:
<?php
/**
* Template Name: Campaigns
*
* @package PM
*/
?>
<div id="primary" class="content-area">
<main id="main" class="site-main">
<section class="outer-categories">
<div class="container-fluid">
<div class="row text-justify">
<div class="col-lg-12">
<?php
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', 'page' );
endwhile; // End of the loop.
?>
</div>
</div>
</div>
</section>
</main><!-- #main -->
</div><!-- #primary -->
<?php