如何发布标题为空、内容为空的帖子?

时间:2011-09-08 作者:rfgamaral

你可能会问我为什么这么做?我正在为一家企业开发一个网站,其中的画廊项目都是帖子。这些帖子是通过自定义字段和类别选择填充的,没有其他内容。

对于每个项目,可能有标题/内容,也可能没有,这取决于所讨论的项目,这完全取决于客户。他们是填充他们投资组合的人,而不是我。我只是在建立一个系统,让他们可以轻松地发布他们想要的任何东西。

我意识到WordPress对于没有标题的帖子可能会有一些问题,这就是为什么我在functions.php) 一个函数,用于在没有属性的情况下自动设置帖子标题。这篇文章的自动标题将永远不会显示在网站上,因为我会查找它,如果它在那里,请忽略它,否则,请显示文章的属性标题。

其功能是:

add_action(\'publish_post\', \'insert_automatic_post_title\', 10, 2);

function insert_automatic_post_title($postID, $post) {
    if($post->post_title === \'\') {
        $post->post_title = \'[\'.get_the_date(\'d/m/Y @ H:i:s\').\']\';

        if($post->post_name == $postID) {
            $post->post_name = sanitize_title($post->post_title);
        }

        $result = wp_update_post($post);
    }
}
唯一的问题是,如果标题是空的,内容也是空的(已经定义了一些自定义字段),那么上面的函数将永远不会被调用,帖子也不会被发布,它将保持在草稿状态。

我能想到的唯一解决方案是创建一些短代码,如[empty_post] 当客户不希望将标题/内容归属于帖子时,请客户在帖子内容上设置该选项。这个短代码可以打印出如下内容<!-- EMPTY POST --> 甚至什么都没有。事实上,在帖子内容中有一些东西,上面的函数被调用,一个自动标题被设置,帖子被发布。

但我正在寻找一种方法,使客户不需要比所需的更麻烦(即:在帖子内容中插入一个短代码),我希望它尽可能简单。当然不会弄乱WordPress的源代码。

有人能想出另一种操作/过滤器的方法吗?

5 个回复
最合适的回答,由SO网友:Jan Fabry 整理而成

如果帖子内容、标题和摘录为空WordPress will prevent the insertion of the post. 您可以通过先过滤输入数组,将空值设置为其他值,然后再将这些值重置为空字符串来欺骗WordPress。这将绕过标准检查。

add_filter(\'pre_post_title\', \'wpse28021_mask_empty\');
add_filter(\'pre_post_content\', \'wpse28021_mask_empty\');
function wpse28021_mask_empty($value)
{
    if ( empty($value) ) {
        return \' \';
    }
    return $value;
}

add_filter(\'wp_insert_post_data\', \'wpse28021_unmask_empty\');
function wpse28021_unmask_empty($data)
{
    if ( \' \' == $data[\'post_title\'] ) {
        $data[\'post_title\'] = \'\';
    }
    if ( \' \' == $data[\'post_content\'] ) {
        $data[\'post_content\'] = \'\';
    }
    return $data;
}

SO网友:farinspace

一个快速而肮脏的解决方案是使用javascript/jQuery。。。执行一些检测以检查它将在哪个post类型上执行,然后执行以下操作:

查找帖子标题字段

隐藏帖子标题字段

自动填充帖子标题字段

大多数wordpress后端都是用javascript操作的,用户使用admin而不使用JS的可能性很低。即使发生这种情况,您也可以检测并添加某种警告/消息。

SO网友:AndrettiMilas

我会把这些用div包起来display:none 在我的CSS中。

SO网友:Pete

此插件(Auto Title) 已过时,但在我的4.3.1 WP安装中运行良好。这可以帮助您根据您的简介使用自定义字段和类别选择填充标题

SO网友:kuertee

在新的古腾堡版本中,Wordpress允许您保存一个空标题和一个空短代码块。它根本不呈现HTML。

结束

相关推荐

在我网站的不同部分使用不同大小的缩略图...使用Functions.php?

两年前,在StackOverflow中,有一个有趣的问题,关于在站点的不同部分使用特定的缩略图、小型、中型或大型图像。问题是,available here, 是well answered 其中一位用户Doug Neiner建议使用以下代码:<?php function get_attached_images(){ // This function runs in \"the_loop\", you could run this out of the loop but&#x