Ein Klick Demo-Content-Installations-function im WordPress-Design-Optionen-Panel

Ich habe seit einigen Tagen eine function zur Installation von Ein-Klick-Demo-Inhalten auf einigen leistungsstarken WordPress-Themes gesehen. Hauptsächlich bei Themeforest-Themen.

Ich würde gerne wissen, ob jemand eine Idee über die beste Möglichkeit hat, dies zu implementieren. Oder andere Ressourcen, um dies zu tun. Einige Hinweise, Ideen oder Keywords wären ausreichend. Ich bitte Sie nicht, mir die Codes oder so etwas zu schreiben.

Ich frage mich, ob Sie den richtigen Weg kennen.

Danke im Voraus.

Solutions Collecting From Web of "Ein Klick Demo-Content-Installations-function im WordPress-Design-Optionen-Panel"

Wenn Sie das WordPress-Import-Plugin überprüfen, ist es einfach, diese function zu implementieren. Aber wenn Sie die direkte Antwort wollen, hier ist es

Als erstes müssen wir die WordPress-Import-Plugin-Dateien in unser Themenverzeichnis kopieren. so was

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

Sie können dieses Plugin hier WordPress-Importeur finden

Nach diesem Schritt erstellen wir 3 neue Dateien

Datei 1: bootstrapguru-import.php fügen Sie den folgenden Code in diese Datei ein

 class bootstrapguru_import extends WP_Import { function check() { //you can add any extra custom functions after the importing of demo coment is done } } 

Datei 2: bootstrapguru-importer.php fügen Sie den folgenden Code in diese Datei ein

 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 } 

Datei 3: bootstrapguru-import.js fügen Sie den folgenden Code in diese Datei ein

 (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('
'+ response +'
'); //alert('Got this from the server: ' + response); }); }); })(jQuery);

In der obigen Datei können Sie sehen, dass wir auf eine Schaltfläche klicken, mit der .bootstrapguru_import class eine .bootstrapguru_import in WordPress .bootstrapguru_import wird. was in Datei 2 und auch beim Erfolg erstellt wird, hängen wir die Nachricht an .import_message div

Wir sind kurz davor, unsere Übung zu beenden;) Lassen Sie uns wissen, dass wir neue Dateien haben, indem wir in functions.php Zeile functions.php

 include_once( 'inc/bootstrapguru-importer.php' ); 

also alles ist fast eingestellt. Erstellen Sie nun eine Schaltfläche und ein div-Element in Ihrem Designoptionen-Bedienfeld, in dem die Schaltfläche zum Importieren der Importfunktion und zum Einfügen des erfolgreichen Imports in div steht.

Lassen Sie mich wissen, wenn Sie irgendwelche Probleme mit meinem Beitrag finden, könnte ich etwas verpassen. Dies funktionierte für mich, nachdem ich 6 Stunden daran gearbeitet hatte

Versucht zu kommentieren, aber mein Ruf ist nicht genug. AJAX-Teil funktioniert nicht, weil die .js-Datei nicht in die Warteschlange gestellt wird. Fügen Sie den folgenden Code hinzu und es funktioniert perfekt.

 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' );