如何在Wordpress中创建自定义帖子界面?

时间:2011-12-20 18:27:22

标签: php wordpress

我的wordpress博客是关于音乐的,每当我在我的博客上发布音乐时,我都遵循相同的例程,这非常令人厌烦。所以我想知道如何加快这个过程。

这是我在我的博客上发布新音乐时的惯例:

  1. 转到媒体并为新音乐上传新照片。
  2. 转到后台发布类型,并为新音乐创建新的后台发布类型。
  3. 转到帖子 - >添加新内容并将之前创建的背景帖子类型和图片附加到此帖子,并在输入此新音乐的详细信息后发布帖子。
  4. 所以这三个步骤非常累人,因为每次我在博客中添加新音乐时,我都需要按照3个步骤操作。我想知道是否有办法将所有这些步骤放在一个页面中,此页面将包含媒体输入框,后期帖子类型并添加新帖子。

    请告诉我怎么做到这一点。谢谢

1 个答案:

答案 0 :(得分:1)

嗯,您可以在管理面板表单中使用插件,其中包含browse字段,适用于媒体,post type,其他图片browse等。一些动态函数,它将这个表单数据放在变量和$ _POST上,使用内置的worpress函数创建post / registers元数据/媒体等。

也可以看一下wordpress的模板功能,可以在插件帮助中使用它与背景的东西。

这只是使用Wordpress内置函数创建帖子的示例

<?php
function create_posts_from_serialized_array() {

//Inyour case it will be $_POST not these two lines
$dude_wheresmyarray = 'LOCATION OF YOUR UNSERIALISED ARRAY'; //Dude, where's my array?
$original_array = unserialize (file_get_contents($dude_wheresmyarray));      // Load array

// Create categories, return variables containg newly created category ids

$category = array('cat_ID' => '', 'cat_name'=> utf8_encode('Cat1'), 'category_description' => '', 'category_nicename' => 'cat1', 'category_parent' => '');          $cat_id10 = wp_insert_category($category, true);

$aid = 0; //foreach array begin with 0 and ++ later on

foreach ($original_array as $each_array) {

/*
* Variable for new post on left, variable from $original_array on right
*/
$new_post_title = $original_array[$aid]['title'];
$new_post_content = $original_array[$aid]['description'];
$new_category = $original_array[$aid]['category'];
$new_name = $original_array[$aid]['name'];
$new_address = $original_array[$aid]['address'];
$new_phone = $original_array[$aid]['phone'];
$new_web = $original_array[$aid]['web'];
$new_mail = $original_array[$aid]['mail'];

if ($new_category == 'a')    {$assign_cat = $cat_id1;}

/*
* UPDATE POST
*/

$my_post = array();
$my_post['ID'] = ''; // Integer here WORKS ONLY IF THERE ALREADY IS A POST WITH THAT ID!
$my_post['post_type']      = 'post';
$my_post['post_title']      = utf8_encode($new_post_title);
$my_post['post_content']  = utf8_encode($new_post_content);
$my_post['post_status']   = 'publish';
$my_post['post_author']   = 1;
$my_post['post_category'] = array($assign_cat);

$pid = wp_update_post( $my_post ); //Update post, return new post ID

/*
* UPDATE META
*/

update_post_meta($pid, 'name',      utf8_encode($new_name));
update_post_meta($pid, 'address',   utf8_encode($new_address));
update_post_meta($pid, 'phone',     $new_phone);
update_post_meta($pid, 'web',       $new_web);
update_post_meta($pid, 'mail',      $new_mail);

$aid ++; //loopidy loopin

}
}

?>