我目前正在尝试使用wordpress制作电子杂志,并且已经完成了大部分工作。主页显示该版电子杂志中包含的“片段”列表。我想这样做是为了在版本到期时(当前使用Post Expirator插件),创建一个新页面,自动类似于显示该特定(现在已过期)版本的索引的首页。在Wordpress中创建帖子的新页面
我不是很有经验的使用PHP,并且仍然是wordpress的新手。我怎么能做到这一点?
我目前正在尝试使用wordpress制作电子杂志,并且已经完成了大部分工作。主页显示该版电子杂志中包含的“片段”列表。我想这样做是为了在版本到期时(当前使用Post Expirator插件),创建一个新页面,自动类似于显示该特定(现在已过期)版本的索引的首页。在Wordpress中创建帖子的新页面
我不是很有经验的使用PHP,并且仍然是wordpress的新手。我怎么能做到这一点?
这里是我落得这样做,用费利佩的建议作为出发点。这样做可能会有一种不那么有说服力的方式,但正如我所说,我只是一个初学者,所以这就是我想出的:
首先,我创建了一个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为true。如果在循环结束时$ volExists为false,则它将保存缓存页面。
再一次,它可能会被优化很多,但现在这个工作!
想法是这样的,你只需要获得到期日期并为其制定条件。你只需要有一个基本的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
我会在索引页面中添加这个吗?此外,这是不是只会创建一个页面,所有过期的帖子都会去? – Sele
据我所知,您正在尝试创建索引页的存档。如果是这样,请检查PHP copy()函数以使用不同的名称保存它们。 –
好吧,它更像是过去的问题的存档,它确实与索引页面相似。我现在正在查看copy()函数......您建议的是在当前索引页过期并将其保存为其他名称的情况下复制当前索引页,对不对? – Sele
是的。据我所知,原因是没有WP功能来做到这一点。你将不得不复制过去的索引页并用另一个名字保存它们。 –