更改从自定义帖子类型删除帖子时提供的消息

时间:2020-03-04 作者:Asta

所以我有一个自定义的post类型,叫做members。与高级自定义字段链接,我已经创建了它,因此,如果我从自定义帖子类型中删除成员,它不会移动到垃圾箱并永久删除它。但我仍然得到这样的信息:

enter image description here


我试图在内部覆盖的线路/wp-admin/edit.php 是:

\'trashed\'   => _n( \'%s post moved to the Trash.\', \'%s posts moved to the Trash.\', $bulk_counts[\'trashed\'] ),
我在里面试过的代码functions.php 更改如下:

add_filter( \'post_trashed_messages\', function( $messages )
{
    $messages[\'post\'][2] = \'Succesfully deleted\';
    return $messages;
} );

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

没有叫胡克的post_trashed_messages, 但有一个bulk_post_updated_messages hook 可用于更改批量操作更新消息:

add_filter( \'bulk_post_updated_messages\', function ( $bulk_messages, $bulk_counts ) {
    $bulk_messages[\'post\'][\'trashed\'] = _n( \'%s post successfully deleted.\', \'%s posts successfully deleted.\', $bulk_counts[\'trashed\'] );
    return $bulk_messages;
}, 10, 2 );
或者,要针对特定的post类型,请将键设置为post type($bulk_messages[\'<post type slug>\']) &mdash;在下面的示例中,post类型slug为my_cpt:

add_filter( \'bulk_post_updated_messages\', function ( $bulk_messages, $bulk_counts ) {
    $bulk_messages[\'my_cpt\'] = isset( $bulk_messages[\'my_cpt\'] ) ? $bulk_messages[\'my_cpt\'] : array();
    $bulk_messages[\'my_cpt\'][\'trashed\'] = _n( \'%s post successfully deleted.\', \'%s posts successfully deleted.\', $bulk_counts[\'trashed\'] );
    return $bulk_messages;
}, 10, 2 );
此外,正如您在上面所看到的,我建议您让用户(和/或您自己)知道有多少帖子被删除。所以利用$bulk_counts[\'trashed\'] 而不是简单地说“已成功删除”…:)

更新以回复您的评论,“如何删除撤消按钮”,我看不到这方面的过滤器,但您可以使用CSS直观地隐藏按钮:(只需更改my_cpt 至正确的(柱式)段塞。)

body.edit-php.post-type-my_cpt #message a[href*="&doaction=undo&action=untrash"] {
    display: none;
}

相关推荐

AJAX回调函数可以访问在初始页面加载期间定义的PHP变量吗?

我已经编写了一个自定义插件。加载“我的网站”上的a页时:我的插件的主PHP准备数据发送到页面。在执行此文件的过程中,会定义一个PHP变量并为其赋值($myvar).</在页面加载过程中,会对我的服务器进行AJAX调用,服务器会执行一个定制的PHP回调函数我想让PHP回调函数知道$myvar. 这可能吗?如果是这样,是明智的,还是可能不标准和/或有风险?一种迂回的方法是将$myvar发送到浏览器,以便通过JavaScript(使用wp_localize_script()), 然后在AJAX调用期间将