在自定义帖子类型中创建的帖子如果在没有标题的情况下发布,则会丢失

时间:2011-08-24 作者:Andrew

我到处搜索,下面的URL是我能找到的关于这个问题的全部内容。如果我在没有输入帖子标题的情况下发布自定义帖子类型的帖子,它会擦除整个帖子的信息并显示“已发布”。然而,这篇文章却无处可寻。查看数据库,我可以看到帖子已创建,但设置为自动草稿。post\\u name值为空

找到了这个。听起来正是我所经历的http://www.wptavern.com/forum/plugins-hacks/1851-custom-post-type-posts-published-without-title-lost.html

有没有办法解决这个问题?或者有人可以建议一种方法,在发布帖子时检查帖子标题是否存在,并向用户显示错误消息?

Update多亏了Manny下面的解决方案,我成功地对WordPress prompt checklist before publish? 并修复“发布”按钮,使其在关闭警报框时不会继续旋转。

add_action(\'admin_head\', \'post_title_check\');
function post_title_check() { ?>

<script type="text/javascript">
    jQuery(document).ready(function() {
        jQuery(\'#post\').submit(function() {

            if(jQuery(\'input[name="post_title"]\').val() == \'\') {
                alert("Please input a title");  

               jQuery(\'#ajax-loading\').hide();
               jQuery(\'#publish\').removeClass(\'button-primary-disabled\');
               return false;  
            }

        }); 
    });
</script>

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

负责在数据库上保存帖子的功能(wp\\u insert\\u post)至少需要标题和内容:

http://codex.wordpress.org/Function_Reference/wp_insert_post

编辑:我创建了一个快速而肮脏的jquery解决方案。在函数文件或插件中输入:

<?php
add_action(\'admin_head\', \'post_title_check\');
function post_title_check() {
    ?><script type="text/javascript">
        jQuery(document).ready(function($) {
            $(\'input[name="save"]\').click(function() {
                if($(\'input[name="post_title"]\').val() ===\'\') {
                    alert("Please input a title");  
                    return false;
                }
            }); 
        });
    </script>\'
    <?php   
}
?>
基本上检查文本字段是否为空。如果是,则会给您一条消息并阻止您继续。如果它在该领域有什么东西,它会毫无疑问地提交。

结束

相关推荐

自定义帖子类型:将POST_TITLE设置为自定义帖子类型字段

我为一家公司的员工创建了一个自定义帖子类型,其中包含一些他们必须填写的字段(如电子邮件、电话等)和一个选择框,该框从另一个名为“公司”的自定义帖子类型中获取一些值。我已经禁用/删除了员工职位类型的编辑器,但现在我很难在概述中列出它们,因为每个“员工”都缺少一个标题(post\\u title)。如何将员工的post\\u title设置为与自定义字段“Name”相等?有很多代码在工作,所以我只显示我为每个员工保存数据的部分:foreach ($meta_box[\'fields\'] as $field)