-
He activado el plugin. ¿Dónde está la página “Importar datos de ejemplo”?
-
Encontrarás la página de importación en Administrador de WordPress -> Apariencia -> Importar datos de ejemplo.
-
¿Dónde están guardados los archivos de importación del contenido de demostración y los archivos de registro?
-
Los archivos utilizados en la importación del contenido de demostración se guardarán en el directorio por defecto de subidas de WordPress. Un ejemplo de ese directorio sería:
../wp-content/uploads/2023/03/.El archivo de registro también puede registrarse en la sección Administrador de WordPress -> Medios para que puedas acceder a él fácilmente.
-
¿Cómo predefinir importaciones de contenido de demostración?
-
Esta pregunta es para los autores de temas. Para predefinir importaciones de contenido de demostración, solo tienes que agregar a tu tema la siguiente estructura de código con tus propios valores (usando el filtro
ocdi/import_files):function ocdi_import_files() { return array( array( 'import_file_name' => 'Demo Import 1', 'categories' => array( 'Category 1', 'Category 2' ), 'import_file_url' => 'http://www.your_domain.com/ocdi/demo-content.xml', 'import_widget_file_url' => 'http://www.your_domain.com/ocdi/widgets.json', 'import_customizer_file_url' => 'http://www.your_domain.com/ocdi/customizer.dat', 'import_redux' => array( array( 'file_url' => 'http://www.your_domain.com/ocdi/redux.json', 'option_name' => 'redux_option_name', ), ), 'import_preview_image_url' => 'http://www.your_domain.com/ocdi/preview_import_image1.jpg', 'import_notice' => __( 'After you import this demo, you will have to setup the slider separately.', 'your-textdomain' ), 'preview_url' => 'http://www.your_domain.com/my-demo-1', ), array( 'import_file_name' => 'Demo Import 2', 'categories' => array( 'New category', 'Old category' ), 'import_file_url' => 'http://www.your_domain.com/ocdi/demo-content2.xml', 'import_widget_file_url' => 'http://www.your_domain.com/ocdi/widgets2.json', 'import_customizer_file_url' => 'http://www.your_domain.com/ocdi/customizer2.dat', 'import_redux' => array( array( 'file_url' => 'http://www.your_domain.com/ocdi/redux.json', 'option_name' => 'redux_option_name', ), array( 'file_url' => 'http://www.your_domain.com/ocdi/redux2.json', 'option_name' => 'redux_option_name_2', ), ), 'import_preview_image_url' => 'http://www.your_domain.com/ocdi/preview_import_image2.jpg', 'import_notice' => __( 'A special note for this import.', 'your-textdomain' ), 'preview_url' => 'http://www.your_domain.com/my-demo-2', ), ); } add_filter( 'ocdi/import_files', 'ocdi_import_files' );Puedes establecer archivos de importación para la importación de contenido, los widgets, el personalizador y el framework Redux. También puedes definir una imagen de vista previa, que solo se usará cuando haya varias importaciones de contenido de demostración definidas, de manera que el usuario vea la diferencia entre las importaciones. Es posible asignar categorías para cada importación de contenido de demostración, de modo que estas se puedan filtrar fácilmente. La URL de previsualización mostrará el botón “Vista previa” en el elemento de contenido de demostración predefinido, que abrirá esta URL en una nueva pestaña para que el usuario pueda apreciar la apariencia del sitio de demostración.
-
¿Cómo asignar automáticamente la página de inicio, la página de entradas y las ubicaciones de menús una vez que el importador haya finalizado?
-
Puedes hacerlo con el gancho de acción
ocdi/after_import. El código se vería algo así:function ocdi_after_import_setup() { // Assign menus to their locations. $main_menu = get_term_by( 'name', 'Main Menu', 'nav_menu' ); set_theme_mod( 'nav_menu_locations', array( 'main-menu' => $main_menu->term_id, // replace 'main-menu' here with the menu location identifier from register_nav_menu() function ) ); // Assign front page and posts page (blog page). $front_page_id = get_page_by_title( 'Home' ); $blog_page_id = get_page_by_title( 'Blog' ); update_option( 'show_on_front', 'page' ); update_option( 'page_on_front', $front_page_id->ID ); update_option( 'page_for_posts', $blog_page_id->ID ); } add_action( 'ocdi/after_import', 'ocdi_after_import_setup' ); -
¿Qué hay de usar archivos de importación locales (del directorio del tema)?
-
Debes usar el mismo filtro como en el ejemplo anterior, pero con claves de array un tanto diferentes:
local_*. Los valores deben ser rutas absolutas (no URL) a tus archivos de importación. Para usar archivos de importación locales que se encuentren en el directorio de tu tema, utiliza el siguiente código. Nota: ¡Asegúrate de que se puedan leer tus archivos de importación!function ocdi_import_files() { return array( array( 'import_file_name' => 'Demo Import 1', 'categories' => array( 'Category 1', 'Category 2' ), 'local_import_file' => trailingslashit( get_template_directory() ) . 'ocdi/demo-content.xml', 'local_import_widget_file' => trailingslashit( get_template_directory() ) . 'ocdi/widgets.json', 'local_import_customizer_file' => trailingslashit( get_template_directory() ) . 'ocdi/customizer.dat', 'local_import_redux' => array( array( 'file_path' => trailingslashit( get_template_directory() ) . 'ocdi/redux.json', 'option_name' => 'redux_option_name', ), ), 'import_preview_image_url' => 'http://www.your_domain.com/ocdi/preview_import_image1.jpg', 'import_notice' => __( 'After you import this demo, you will have to setup the slider separately.', 'your-textdomain' ), 'preview_url' => 'http://www.your_domain.com/my-demo-1', ), array( 'import_file_name' => 'Demo Import 2', 'categories' => array( 'New category', 'Old category' ), 'local_import_file' => trailingslashit( get_template_directory() ) . 'ocdi/demo-content2.xml', 'local_import_widget_file' => trailingslashit( get_template_directory() ) . 'ocdi/widgets2.json', 'local_import_customizer_file' => trailingslashit( get_template_directory() ) . 'ocdi/customizer2.dat', 'local_import_redux' => array( array( 'file_path' => trailingslashit( get_template_directory() ) . 'ocdi/redux.json', 'option_name' => 'redux_option_name', ), array( 'file_path' => trailingslashit( get_template_directory() ) . 'ocdi/redux2.json', 'option_name' => 'redux_option_name_2', ), ), 'import_preview_image_url' => 'http://www.your_domain.com/ocdi/preview_import_image2.jpg', 'import_notice' => __( 'A special note for this import.', 'your-textdomain' ), 'preview_url' => 'http://www.your_domain.com/my-demo-2', ), ); } add_filter( 'ocdi/import_files', 'ocdi_import_files' ); -
¿Cómo manejar diferentes configuraciones después de la importación según la importación predefinida seleccionada?
-
Es algo que podría preguntar un autor que quiera introducir diferentes configuraciones después de la importación para varias importaciones de contenido de demostración predefinidas. Digamos que hemos predefinido dos importaciones de contenido de demostración con los siguientes nombres: “Demo Import 1” y “Demo Import 2”. El código para la configuración después de la importación sería (usando el filtro
ocdi/after_import):function ocdi_after_import( $selected_import ) { echo "This will be displayed on all after imports!"; if ( 'Demo Import 1' === $selected_import['import_file_name'] ) { echo "This will be displayed only on after import if user selects Demo Import 1"; // Set logo in customizer set_theme_mod( 'logo_img', get_template_directory_uri() . '/assets/images/logo1.png' ); } elseif ( 'Demo Import 2' === $selected_import['import_file_name'] ) { echo "This will be displayed only on after import if user selects Demo Import 2"; // Set logo in customizer set_theme_mod( 'logo_img', get_template_directory_uri() . '/assets/images/logo2.png' ); } } add_action( 'ocdi/after_import', 'ocdi_after_import' ); -
¿Puedo agregar algún código antes de que se importen los widgets?
-
Claro que puedes, usa la acción
ocdi/before_widgets_import. También puedes dirigirlo a diferentes importaciones de contenido de demostración predefinidas, como en el ejemplo anterior. Este es un código de ejemplo sencillo de la acciónocdi/before_widgets_import:function ocdi_before_widgets_import( $selected_import ) { echo "Add your code here that will be executed before the widgets get imported!"; } add_action( 'ocdi/before_widgets_import', 'ocdi_before_widgets_import' ); -
¿Cómo puedo importar mediante WP-CLI?
-
En la versión 2.4.0 de este plugin, hemos agregado dos comandos WP-CLI:
wp ocdi list– Listará las importaciones de contenido de demostración que pueda tener el tema activo actual.-
wp ocdi import– Que tiene algunas opciones que puedes usar para importar las cosas que deseas (contenido/widgets/personalizador/demostraciones predefinidas). Veamos estas opciones a continuación.opciones de importación de WP OCDI:
wp ocdi import [–content=] [–widgets=] [–customizer=] [–predefined=]
-
--content=<file>– Ejecutará la importación de contenido con el archivo de importación de WP especificado en el parámetro<file>. --widgets=<file>– Ejecutará la importación de los widgets con el archivo de importación de widgets especificado en el parámetro<file>.--customizer=<file>– Ejecutará la importación de los ajustes del personalizador con el archivo de importación del personalizador especificado en el parámetro<file>.--predefined=<index>– Ejecutará la importación predefinida del tema con el índice de la importación predefinida en el parámetro<index>(puedes usar el comandowp ocdi listpara comprobar qué índice se utiliza para cada importación de demostración predefinida).
El contenido, los widgets y las opciones del personalizador se pueden mezclar y usar al mismo tiempo. Si la opción
predefinedestá configurada, se ignorarán todas las demás opciones y se importarán los datos de demostración predefinidos. -
Soy autor de un tema y quiero cambiar el texto introductorio del plugin, ¿cómo puedo hacerlo?
-
Puedes cambiar el texto introductorio del plugin con el filtro
ocdi/plugin_intro_text:function ocdi_plugin_intro_text( $default_text ) { $default_text .= '<div class="ocdi__intro-text">This is a custom text added to this plugin intro text.</div>'; return $default_text; } add_filter( 'ocdi/plugin_intro_text', 'ocdi_plugin_intro_text' );Para agregar algo de texto en una caja separada, deberás envolverlo en un div con una clase “ocdi__intro-text”, como en el código de ejemplo presentado.
-
¿Cómo desactivar la generación de imágenes pequeñas (miniaturas) durante la importación del contenido?
-
Esto mejorará bastante el tiempo necesario para importar el contenido (imágenes), pero solo se importarán las imágenes en su tamaño original. Puedes desactivarla con un filtro, así que solo agrega este código en el archivo function.php de tu tema:
add_filter( 'ocdi/regenerate_thumbnails_in_content_import', '__return_false' ); -
¿Cómo cambiar la ubicación, el título y otros parámetros de la página del plugin?
-
Como autor de un tema, ¿no te gusta la ubicación de la página “Importar datos de ejemplo” del plugin en Apariencia -> Importar datos de ejemplo? Puedes cambiarla con el filtro de abajo. Además de la ubicación, puedes cambiar también el título, la página, el menú y algunos otros parámetros.
function ocdi_plugin_page_setup( $default_settings ) { $default_settings['parent_slug'] = 'themes.php'; $default_settings['page_title'] = esc_html__( 'One Click Demo Import' , 'one-click-demo-import' ); $default_settings['menu_title'] = esc_html__( 'Import Demo Data' , 'one-click-demo-import' ); $default_settings['capability'] = 'import'; $default_settings['menu_slug'] = 'one-click-demo-import'; return $default_settings; } add_filter( 'ocdi/plugin_page_setup', 'ocdi_plugin_page_setup' ); -
¿Cómo hacer que se ejecute algo antes de la importación del contenido?
-
En la versión 2.0.0 hay un nuevo gancho de acción:
ocdi/before_content_import, que te permite establecer un gancho antes que comience la importación del contenido. Un ejemplo del código se vería así:function ocdi_before_content_import( $selected_import ) { if ( 'Demo Import 1' === $selected_import['import_file_name'] ) { // Here you can do stuff for the "Demo Import 1" before the content import starts. echo "before import 1"; } else { // Here you can do stuff for all other imports before the content import starts. echo "before import 2"; } } add_action( 'ocdi/before_content_import', 'ocdi_before_content_import' ); -
¿Cómo puedo activar los ganchos de acción de WordPress “customize_save*” en el importador del personalizador?
-
Es fácil, solo agrega esto a tu tema:
add_action( 'ocdi/enable_wp_customize_save_hooks', '__return_true' );Esto activará los siguientes ganchos de WordPress al importar los datos del personalizador:
customize_save,customize_save_*ycustomize_save_after. -
¿Cómo puedo pasar las URL preasignadas de Amazon S3 (enlaces temporales) como archivos externos?
-
Si quieres alojar tus archivos de importación de contenido en Amazon S3, pero quieres que estén disponibles públicamente, en lugar de hacerlo a través de una API propia como URL preasignadas (que caducan), puedes usar el filtro
ocdi/pre_download_import_filesen el que puedes pasar tus propias URL, por ejemplo:add_filter( 'ocdi/pre_download_import_files', function( $import_file_info ){ // In this example get_my_custom_urls` is supposedly making a `wp_remote_get` request, getting the urls from an API server where you're creating the presigned urls, [example here](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-presigned-url.html). // This request should return an array containing all the 3 links - `import_file_url`, `import_widget_file_url`, `import_customizer_file_url` $request = get_my_custom_urls( $import_file_info ); if ( !is_wp_error( $request ) ) { if ( isset($request['data']) && is_array($request['data']) ) { if( isset($request['data']['import_file_url']) && $import_file_url = $request['data']['import_file_url'] ){ $import_file_info['import_file_url'] = $import_file_url; } if( isset($request['data']['import_widget_file_url']) && $import_widget_file_url = $request['data']['import_widget_file_url'] ){ $import_file_info['import_widget_file_url'] = $import_widget_file_url; } if( isset($request['data']['import_customizer_file_url']) && $import_customizer_file_url = $request['data']['import_customizer_file_url'] ){ $import_file_info['import_customizer_file_url'] = $import_customizer_file_url; } } } return $import_file_info;} );
` -
No puedo activar el plugin debido a un error crítico, ¿qué puedo hacer?
-
Actualización: desde la versión 1.2.0 ya hay un aviso de error para el administrador, que señala que la versión de PHP mínima necesaria para este plugin es la 5.3.2.
Quieres activar el plugin, pero aparece este error:
El plugin no ha podido activarse porque ha provocado un error fatal.
Esto ocurre porque tu servidor de alojamiento está usando una versión muy antigua de PHP. Este plugin necesita que la versión de PHP sea 5.3.x como mínimo, pero recomendamos la versión 5.6.x o, aún mejor, la 7.x. Contacta con tu proveedor de alojamiento y solicítale que actualice la versión de PHP para tu sitio.
-
Problemas de importación que no podemos corregir en el plugin
-
Visita esta página de documentación para obtener más respuestas sobre problemas con la importación de datos.
US