Сценарий установки блога Wordpress для создания страниц о контактах и ​​конфиденциальности - PullRequest
1 голос
/ 10 февраля 2010

Я создаю множество блогов, которые имеют одинаковую базовую структуру: «пост» и 3 «страницы» (о нас, свяжитесь с нами, конфиденциальность). Для страницы «пост» я обычно просто редактирую существующий пост «Привет, мир», как только попадаю в недавно созданный блог. Для страниц я начинаю со страницы «о» и просто редактирую ее для своей страницы «о нас».

Я бы хотел создать скрипт или плагин, который я мог бы просто добавить на свой сайт, который при запуске автоматически создаст эти страницы с моим шаблонным контентом. Для страницы «о нас» я могу просто отредактировать «страницу о» по умолчанию через скрипт. А для начального «поста» скрипт может просто отредактировать пост «Привет, мир». Другие «страницы» нужно будет создавать с нуля с помощью скрипта.

Я ищу идеи о том, как лучше всего это сделать (плагин или скрипт, который загружается и выполняется), а также некоторую помощь с вызовами WordPress API, используемыми для создания и обновления сообщения, а также имени и содержимого страницы. .

Для контента по умолчанию информация о контенте и контакте будет очень короткой, но мне потребуется использовать внешний файл для заполнения страницы конфиденциальности. Я думаю, что предварительно отформатированный .html файл должен использоваться в качестве основы для этой вставки базы данных.

Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 10 февраля 2010

Если вы каждый раз настраиваете блоги с нуля, вы можете манипулировать /wp-admin/includes/upgrade.php (функция wp_install_defaults()) и размещать там свои страницы.

Это, однако, если вам удобно взламывать файлы ядра WP.

Другая возможность - сделать это после установки с помощью специального сценария SQL. Просто используйте phpMyAdmin , чтобы посмотреть, как выглядит текущая страница, и создайте свой собственный оператор INSERT INTO. Для удобства вы можете написать небольшой плагин WP, который выполняет вставку при активации и впоследствии удаляет себя, или что-то в этом роде.

Редактировать: Посмотрев на вышеупомянутый файл, вы можете сделать все изнутри PHP с помощью этого:

$wpdb->insert( $wpdb->posts, array(
    'post_author' => $user_id,
    'post_date' => $now,
    'post_date_gmt' => $now_gmt,
    'post_content' => __('Lorem ipsum...'),
    'post_excerpt' => '',
    'post_title' => __('About'),
    /* translators: Default page slug */
    'post_name' => _x('about', 'Default page slug'),
    'post_modified' => $now,
    'post_modified_gmt' => $now_gmt,
    'guid' => $first_post_guid,
    'post_type' => 'page',
    'to_ping' => '',
    'pinged' => '',
    'post_content_filtered' => ''
    ));
0 голосов
/ 12 февраля 2010

Вы можете поместить его в плагин, который вы просто загружаете, активируете и удаляете. Вот что я использую, модифицированный для вашего использования (еще не проверял):

<?php
/*
Plugin Name: Startup Settings
Plugin URI: http://someurl/
Description: Some description
Version: 1
Author: Your Name
Author URI: http://yoursite.com
*/

function startup_settings()
{

    // Remove "Hello world" post and comment.
    wp_delete_post(1, TRUE);
    wp_delete_comment(1);

    // Insert your pages.
    global $user_ID;
    $about_page = array(
        'post_title' => 'About us',
        'post_content' => 'Your content goes here',
        'post_status' => 'publish',
        'post_date' => date('Y-m-d H:i:s'),
        'post_author' => $user_ID,
        'post_type' => 'page',
        'post_category' => array(0)
    );
    $post_id = wp_insert_post($about_page);

    $contact_page = array(
        'post_title' => 'Contact us',
        'post_content' => 'Your content goes here',
        'post_status' => 'publish',
        'post_date' => date('Y-m-d H:i:s'),
        'post_author' => $user_ID,
        'post_type' => 'page',
        'post_category' => array(0)
    );
    $post_id = wp_insert_post($contact_page);

    // if you want to load the privacy text from a external file (untested)
    $myFile = "/path/to/privacy.txt";
    $fh = fopen($myFile, 'r');
    $theData = fread($fh, filesize($myFile));
    fclose($fh);

    $privacy_page = array(
        'post_title' => 'Privacy',
        'post_content' => $theData,
        'post_status' => 'publish',
        'post_date' => date('Y-m-d H:i:s'),
        'post_author' => $user_ID,
        'post_type' => 'page',
        'post_category' => array(0)
    );
    $post_id = wp_insert_post($privacy_page);

    // Set some deafault options if you want.
    $options = array(
        'comment_max_links'         => 0,
        'comments_per_page'         => 0,
        'date_format'               => 'd.m.Y',
        'default_ping_status'       => 'closed',
        'links_updated_date_format' => 'l, F j, Y',
        'permalink_structure'       => '/%postname%/',
        'rss_language'              => 'en',
        'use_smilies'               => 0
    );

    foreach ( $options as $option => $value )
    {
        update_option($option, $value);
    }

    return;
}
register_activation_hook(__FILE__, 'startup_settings');
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...