在Wordpress中创建一个新的帖子页面

时间:2012-11-22 02:43:32

标签: php wordpress

我目前正在尝试使用wordpress制作电子杂志,并且已经完成了大部分工作。主页显示该电子杂志版本中包含的“片段”列表。我想这样做,当版本到期时(目前使用Post Expirator插件),会自动创建一个类似于首页的新页面,显示该特定(现已过期)版本的索引。

我在使用PHP方面不是很有经验,而且仍然是wordpress的新手。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:0)

这个想法是这样的,你只需要获得到期日期并用它来制定条件。你只需要有一个基本的PHP技能,你就可以这样做。继承逻辑

  if($curdate > $expiration_date){ //you can change the condition into ">=" if you want to create a post on and after expiration date

      //sample wordpress wp_insert_post
      $my_post = array(
        'post_title'    => 'My post',
        'post_content'  => 'This is my post.',
        'post_status'   => 'publish',
        'post_author'   => 1,
        'post_category' => array(8,39)
      );

      // Insert the post into the database
      wp_insert_post( $my_post );

   }

了解更多信息,请访问http://codex.wordpress.org/Function_Reference/wp_insert_post

答案 1 :(得分:0)

这是我最终做的事情,以费利佩的建议为出发点。可能会有一种不那么令人反感的方式,但是,正如我所说,我只是一个初学者,所以这就是我提出的:

首先,我创建了一个volnum变量,用于跟踪当前的卷号。然后,我缓存首页,以便稍后我可以将其保存为独立的html文档: 这是在get_header()。

之前的index.php的开头
<?php $volnum; ?>
<?php ob_start(); ?>

在首页,我有一篇社论,旁边有我的内容索引。我正在保存编辑标签(总是“voln”,其中“n”是卷号)卷号(也许foreach不是必需的,因为编辑只有一个标签):

<?php $tags = get_the_tags();
      foreach ($tags as $tag){
        $volnum = $tag->name;
      }
?>

最后,在文档的最后,在最后一个html之后,我添加了以下代码:

<?php
    $handle = opendir("past_vol/");
    $numOfFiles = count($handle);
    $volExists = false;
    for($i=0;$i<=$numOfFiles;$i++){
        $name = readdir($handle);
        if($volnum.".html" == ($name)){
            $volExists = true;
            continue; 
        }
    }
    if($volExists == false){
        $cachefile = "past_vol/".$volnum.".html";
        $fp = fopen($cachefile, 'w'); 
        fwrite($fp, ob_get_contents());
        fclose($fp);
    }
    closedir($handle);
    ob_end_flush(); 
?>

“past_vol”是我保存过去的卷html文件的目录。因此,打开目录,计算文件数量,并启动遍历每个文件名称的循环。如果文件名与$ volnum同名,则$ volExists为真。如果在循环结束时$ volExists为false,则保存缓存页面。

同样,它可能会被大量优化,但是现在这个有效!