阻止WordPress自动添加图像标题

时间:2015-12-15 作者:PolGraphic

我编写了一个插件,为所有未设置(空)的标题设置默认标题,并手动设置标题(非空)。

问题是当我上传新照片(到图库)时,WordPress默认将标题设置为文件名。如何禁用它和force WordPress to use empty string as default image title?

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

当图像附件插入但未更新时,可以尝试以下操作来清除其标题:

/**
 * Empty the image attachment\'s title only when inserted not updated
 */
add_filter( \'wp_insert_attachment_data\', function( $data, $postarr )
{
    if( 
        empty( $postarr[\'ID\'] ) 
        && isset( $postarr[\'post_mime_type\'] )
        && wp_match_mime_types( \'image\', $postarr[\'post_mime_type\'] ) 
    )
        $data[\'post_title\'] = \'\';

    return $data;
}, 10, 2 );
这里我们使用wp_insert_attachment_data 如果附件ID 为空,mime类型是图像类型,根据wp_match_mime_types(). 一个简单的\'image\' === substr( $postarr[\'post_mime_type\'], 0, 5 ) 检查也可以。您甚至可以针对给定的mime类型,如image/jpeg.

相关推荐

如何在最后一个“-”之后回显所有不带文本的_title()

我正在尝试做一些事情,但我有问题。。。我不会显示我的帖子列表,但我想从所有标题中删除最后“-”(破折号)之后的文本我的帖子列表:我的经历-这个男孩-第一天-遇见我的爱人-我不知道-第二天-我的第一次-奥乌-第三次-我想回报你:我的经历-这个男孩-第一天我的爱人-我不知道我的第一次我试过:<?php $stringx = get_the_title(); echo preg_replace(\'/-[^-]*$/\', \'\', $stringx); ?> 但是这个返回全文