我目前正在尝试使用wordpress制作电子杂志,并且已经完成了大部分工作。主页显示该电子杂志版本中包含的“片段”列表。我想这样做,当版本到期时(目前使用Post Expirator插件),会自动创建一个类似于首页的新页面,显示该特定(现已过期)版本的索引。
我在使用PHP方面不是很有经验,而且仍然是wordpress的新手。我怎么能做到这一点?
答案 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,则保存缓存页面。
同样,它可能会被大量优化,但是现在这个有效!