是否通过链接在指定的发布日期创建新帖子?

时间:2016-11-29 作者:Angela T

我已经编写了Wordpress日历插件,并希望在指定的日期(即没有帖子的日期)放置“添加帖子”链接:

Preview

当我单击该链接时,我希望被带到“添加新帖子”管理页面,并预先选择特定日历日期作为帖子发布日期。有没有办法通过URL中的查询字符串来实现这一点?

例如:http://example.com/wp-admin/post-new.php?post_date=2016-09-14

这种方法可行吗?是否有其他方法可以尝试将日期传递到“添加新帖子”页面?我只是在做梦吗?:)TIA!

1 个回复
最合适的回答,由SO网友:Angela T 整理而成

这是我想出的解决方案!

在我的插件函数中:

<?php
function ficma_inline_script() {
    $datedata = explode("-", $_POST[\'date\']);
    $year = $datedata[0];
    $month = $datedata[1];
    $day = $datedata[2];
    $newdate = date("M d, Y", mktime(0, 0, 0, $month, $day, $year));
?>
<script type="text/javascript">
document.getElementById("mm").value = "<?=$month ?>";
document.getElementById("cur_mm").value = "<?=$month ?>";
document.getElementById("hidden_mm").value = "<?=$month ?>";
document.getElementById("jj").value = "<?=$day ?>";
document.getElementById("cur_jj").value = "<?=$day ?>";
document.getElementById("hidden_jj").value = "<?=$day ?>";
document.getElementById("aa").value = "<?=$year ?>";
document.getElementById("cur_aa").value = "<?=$year ?>";
document.getElementById("hidden_aa").value = "<?=$year ?>";
document.getElementById("timestamp").innerHTML = "Publish date: <b><?=$newdate ?></b>";
document.getElementById("title").value = "<?=$titledate ?>";
alert("Script loaded inline! <?=$newdate ?> / <?=$titledate ?>");
</script>
<?php
}

global $pagenow;
if (!empty($pagenow) && \'post-new.php\' === $pagenow && isset($_POST[\'date\']) && $_POST[\'date\'] != "") {
    add_action(\'admin_footer\', \'ficma_inline_script\');
}
?>
在我的内容中:

<form id="<?=$formname ?>" method="post" action="<?=admin_url() ?>post-new.php" target="_blank" class="ficma-form">
    <input type="hidden" name="date" value="<?=$caldate ?>" />
    <input type="submit" name="submit" value="+" class="ficma-form-submit" style="<?=$ficma_color_add_post_link ?>" />
</form>
关键是在管理页脚中加载JS,以便在表单完全加载后更新字段值。

设置hidden_* 字段。如果单击Edit 链接以更改发布日期,然后取消,这些值将重置为当前日期。

*2017年4月24日编辑:添加了一些JS更改值。但是,单击“另存为草稿”、“另存为挂起”或“发布”按钮时,不会保留自定义日期;正在搜索修复程序。

相关推荐

在参数中对关系使用META_QUERY

我找到了这本指南,我正在遵循它:https://rudrastyh.com/wordpress/meta_query.html但我发现它不适用于高级自定义字段的关系。为什么?这是我的代码:$args=array( \'post_type\' => \'post\', \'post_status\' => \'publish\', \'posts_per_page\' => -1, \'meta