如何进行一次性导入或数据迁移?

时间:2015-05-29 作者:randalv

是否有内置的工作流或流程来运行与分类法、新类别、过滤器、挂钩、插件设置等相关的一次性wordpress数据库更新?

现在,我正在将所有这些编程数据库更新放入我的自定义函数中。php文件。这感觉不对,因为即使是一次性任务,代码也会重复运行。使用注释掉的更改进行部署,然后重新部署,这也让人感觉很乏味。我来自其他技术栈,那里有一个内置的工作流,用于管理一次性数据库迁移和导入。Wordpress有这样的东西吗?

2 个回复
SO网友:TheDeadMedic

我建议您将主题版本存储在数据库中,并将其与软件包版本进行比较,如果有差异,请在升级/安装操作中加载:

define( \'THEME_PREFIX_VERSION\', \'X.X\' );

/**
 * Run upgrade/install.
 */
function theme_prefix_install() {
    require_once dirname( __file__ ) . \'/install.php\';
}

if ( version_compare( get_option( \'theme_prefix_version\' ), THEME_PREFIX_VERSION, \'<\' ) )
    add_action( \'init\', \'theme_prefix_install\' );
然后在install.php:

if ( ! defined( \'THEME_PREFIX_VERSION\' ) )
    exit;

$version = get_option( \'theme_prefix_version\' );

if ( version_compare( $version, \'1.0\', \'<\' ) ) {
    // Upgrade code required for version 1.0
}


if ( version_compare( $version, \'1.1\', \'<\' ) ) {
    // Upgrade code required for version 1.1
}

// And so forth

// All updated, store current package version
update_option( \'theme_prefix_version\', THEME_PREFIX_VERSION );

SO网友:TheDeadMedic

仅为了运行升级而创建工作插件。代码在激活时运行,然后可以简单地再次停用,而不会影响运行时/性能:

<?php

/**
 * Plugin Name: Project Name Upgrader
 * Description: Activate to run one-time upgrades.
 * Version:     0.1
 * Author:      Author
 */

function project_name_upgrade() {
    // All your upgrade code
}

register_activation_hook( __file__, \'project_name_upgrade\' ); 

结束

相关推荐

Import External XML

我不知道从哪里开始。我想创建自定义帖子类型,它将列出客户网站上的属性。我希望这些属性从其他网站/软件提供。因此,其他网站/软件将向我的Wordpress网站发送XML文件,我希望接收该文件并将其转换为我的自定义帖子。有谁能帮我了解一下这项任务,即从哪里开始?是否需要在数据库中创建自定义表?如何捕获该XML文件?任何信息都将不胜感激。谢谢