这是我想出的解决方案!
在我的插件函数中:
<?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更改值。但是,单击“另存为草稿”、“另存为挂起”或“发布”按钮时,不会保留自定义日期;正在搜索修复程序。