Как создать страницу с выбранным шаблоном после активации плагина - PullRequest
0 голосов
/ 04 августа 2020

Я пишу свой первый плагин, и у меня проблема. Я не знаю, как написать функцию, которая создает страницу с выбранным шаблоном спецификаций c после активации плагина.

function add_my_custom_page() {
    // Create post object
    $my_post = array(
        'post_title'    => wp_strip_all_tags( 'Example form' ),
        'post_status'   => 'publish',
        'post_author'   => 1,
        'post_type'     => 'page',
    );

    // Insert the post into the database
    wp_insert_post( $my_post );
}

register_activation_hook(__FILE__, 'add_my_custom_page');

add_filter( 'page_template', 'wpa3396_page_template' );
function wpa3396_page_template( $page_template )
{
    if ( is_page( 'my-custom-page-slug' ) ) {
        $page_template = dirname( __FILE__ ) . '/form/haccp-form.php';
    }
    return $page_template;
}

1 Ответ

0 голосов
/ 04 августа 2020

Из документации wp_insert_post () вы можете использовать аргумент page_template:

page_template: Если post_type равно 'page', будет предпринята попытка установить шаблон страницы. В случае сбоя функция вернет либо WP_Error, либо 0, и остановится до того, как будут вызваны финальные действия. Если post_type не «page», параметр игнорируется. Вы можете установить шаблон страницы для не-страницы, вызвав update_post_meta () с ключом _wp_page_template.

Так что просто передайте:

  // Create post object
    $my_post = array(
        'post_title'    => wp_strip_all_tags( 'Example form' ),
        'post_status'   => 'publish',
        'post_author'   => 1,
        'post_type'     => 'page',

        // Assign page template
        page_template'  => 'your-template.php'
    );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...