WordPress主题选项面板中的一键演示内容安装功能

时间:2014-08-19 作者:Muntasir Mahmud Aumio

我最近在一些功能强大的WordPress主题上看到了一键演示内容安装选项的功能。主要是关于最前面的主题。

我想知道是否有人对实现这一目标的最佳方式有任何想法。或任何其他资源来执行此操作。一些提示、想法或关键词就足够了。我不是要你给我写代码什么的。

我想知道你是否知道这样做的正确方法。

提前谢谢。

2 个回复
SO网友:bootstrapguru

如果您检查Wordpress导入器插件,则很容易实现此功能。但是如果你想要直接的答案,就在这里

首先,我们需要将Wordpress导入器插件文件复制到主题目录。像这样

    1. themes/bootstrapguru_theme/inc/wordpress-importer.php
    2. themes/bootstrapguru_theme/inc/parser.php

您可以在此处找到此插件wordpress importer

完成此步骤后,我们将创建3个新文件

File 1 : bootstrapguru-import.php将以下代码粘贴到该文件中

class bootstrapguru_import extends WP_Import
{
    function check()
    {
    //you can add any extra custom functions after the importing of demo coment is done
    }
}
File 2 : bootstrapguru-importer.php将以下代码粘贴到该文件中

add_action( \'wp_ajax_my_action\', \'my_action_callback\' );
function my_action_callback() 
{
    global $wpdb; 

    if ( !defined(\'WP_LOAD_IMPORTERS\') ) define(\'WP_LOAD_IMPORTERS\', true);

    // Load Importer API
    require_once ABSPATH . \'wp-admin/includes/import.php\';

    if ( ! class_exists( \'WP_Importer\' ) ) {
        $class_wp_importer = ABSPATH . \'wp-admin/includes/class-wp-importer.php\';
        if ( file_exists( $class_wp_importer ) )
        {
            require $class_wp_importer;
        }
    }

    if ( ! class_exists( \'WP_Import\' ) ) {
        $class_wp_importer = get_template_directory() ."/inc/wordpress-importer.php";
        if ( file_exists( $class_wp_importer ) )
            require $class_wp_importer;
    }


    if ( class_exists( \'WP_Import\' ) ) 
    { 
        $import_filepath = get_template_directory() ."/tmp/demo.xml" ; // Get the xml file from directory 

        include_once(\'bootstrapguru-import.php\');

        $wp_import = new bootstrapguru_import();
        $wp_import->fetch_attachments = true;
        $wp_import->import($import_filepath);

        $wp_import->check();

    }
        die(); // this is required to return a proper result
}
File 3 : bootstrapguru-import.js将以下代码粘贴到该文件中

(function($) {
    "use strict";
        $(\'.bootstrapguru_import\').click(function(){
            $import_true = confirm(\'are you sure to import dummy content ? it will overwrite the existing data\');
            if($import_true == false) return;

            $(\'.import_message\').html(\' Data is being imported please be patient, while the awesomeness is being created :)  \');
        var data = {
            \'action\': \'my_action\'       
        };

       // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
        $.post(ajaxurl, data, function(response) {
            $(\'.import_message\').html(\'<div class="import_message_success">\'+ response +\'</div>\');
            //alert(\'Got this from the server: \' + response); <i class="fa fa-spinner fa-3x fa-spin"></i>
        });
    });
})(jQuery);
在上面的文件中,您可能会看到我们用.bootstrapguru_import 类将在wordpress中启动回调函数。创建于file 2 还有,关于成功,我们将附加信息.import_message 部门

我们即将完成练习;)让我们告诉wordpress,通过在functions.php

include_once( \'inc/bootstrapguru-importer.php\' );
所以几乎一切都安排好了。现在在你的主题选项面板中创建一个按钮和div,按钮启动导入功能,div发布成功的导入。

如果你发现我的帖子有任何问题,请告诉我,我可能会错过一些东西。我花了6个小时才完成

SO网友:Sodbileg Gansukh

试图发表评论,但我的声誉还不够。由于没有排队,AJAX部分无法工作。js文件。添加下面的代码,它就能完美地工作。

function admin_import_scripts() {

    wp_register_script( \'bootstrapguru-import\', get_template_directory_uri() . \'/demo-importer/bootstrapguru-import.js\', false, \'1.0.0\' );
    wp_enqueue_script( \'bootstrapguru-import\' );
}
add_action( \'admin_enqueue_scripts\', \'admin_import_scripts\' );

结束

相关推荐

Tumblr importer

是否可以在不自动发布的情况下将tumblr post导入wordpress WMS?我的wordpress站点有一个多帐户。我希望能够在在线发布之前检查帖子,如果需要的话进行修改。有人知道tumblr帖子的导出格式吗?谢谢你的帮助!!!