У меня есть Сценарий PHP, который я хочу использовать для создания нового блога в WPMU. Я испытываю затруднения при вызывании функций WordPress как wpmu_create_user и wpmu_create_blog.
Моя надежда состоит в том, чтобы получить этот сценарий, работающий как задание крона из командной строки, и поднять новые запросы создания блога с внешнего дб, создать новый блог с помощью функций WordPress и обновить базу данных с новой информацией о блоге.
Я недавно создал один, который довольно прост в использовании:
https://github.com/lookfirst/sardine
-121--1487793- Примечание: это решение работает только в том случае, если столбцы GridView
известны раньше времени.
Похоже, что используется GridView
с AutoGenerateColumns = true
, что является значением по умолчанию. Рекомендуется установить значение AutoGenerateColumns = false
и добавить столбцы вручную:
<asp:GridView runat="server" ID="MyGridView"
AutoGenerateColumns="false" DataSourceID="MySqlDataSource">
<Columns>
<asp:BoundField DataField="Column1" />
<asp:BoundField DataField="Column2" />
<asp:BoundField DataField="Column3" />
</Columns>
</asp:GridView>
И включать только значение BoundField
для каждого поля, которое требуется отобразить. Это обеспечит максимальную гибкость отображения данных.
включить файл wp-load.php (в корне установки wordpress) в файл скрипта php, как это,
require_once("/path/to/wordpress/wp-load.php");
вы должны будете предоставить отклик файла wp-load, теперь вы можете использовать все функции wordpress в сценарии php
Ниже приводится код, который я использую:
<?PHP
require_once ('/path/to/wordpress/wp-load.php');
require_once ('/path/to/wordpress/wp-blog-header.php');
require_once ('/path/to/wordpress/wp-includes/registration.php');
do_action('wpmuadminedit', '');
//Code to Connect and Select the external database
//Code to Connect to the external DB and get the new order details:
NewBlogName=$name and AdminEmail=$email
if ( !email_exists($email) )
{
// email does exist, create a new user
$name = create_name_from_email($email);
$password = "use a default password";
$user_id=wpmu_create_user($name, $password, $email);
create_blog($email, $title, $user_id, $password);
}
else
{
// user exists, create new blog
$user_id=email_exists($email);
$password = "use existing wordpress password";
create_blog($email, $title, $user_id, $password);
}
function create_name_from_email ($email) {
preg_match('/[^@]+)@/',$email,$matches);
$name = $matches[1];
return $name;
}
//Creates a new blog, expects user to already exist.
function create_blog($email, $title, $user_id, $password)
{
//Code to Update external DB that the order is in process
$public = array("public" => 1);
if (constant('VHOST') == 'yes')
{
$newdomain = $domain . "." . $current_site->domain;
$path = $base;
}
else
{
$newdomain = $current_site->domain; $path = $base . $domain . '/';
}
$domain = strtolower($domain);
$newdomain = strtolower($newdomain);
$path = strtolower($path);
$meta = apply_filters('signup_create_blog_meta', array('lang_id' => 1, $public));
$meta = apply_filters("add_singup_meta", $meta);
wpmu_create_blog($newdomain, $path, $title, $user_id , $meta, $current_site->id);
do_action('wpmu_activate_blog', $blog_id, $user_id, $password, $title, $meta);
// Update external DB with BlogUrl, NewBlogName, AdminPassword,
OrderStatus=Complete.
mysql_close($con);
?>