WordPress:如何覆盖特定的更新通知

brccelvz  于 2022-11-22  发布在  WordPress
关注(0)|答案(2)|浏览(107)

所以,我已经使它,如果你从我的成员自定义帖子类型,它不会去垃圾桶,只是永久删除它删除成员.问题是,我仍然得到如下所示的这条消息:

我怎样才能否决functions.php中的消息
我知道我可以/wp-admin/edit.php我可以评论一下:

echo '<div id="message" class="updated notice is-dismissible"><p>' . join( ' ', $messages ) . '</p></div>';

当然,这不是永久性的,每次更新都会中断。
那么,我如何摆脱1后移至垃圾邮件消息?

更新

从帖子类型+我使用的WordPress用户中删除用户的代码如下所示:

add_action('trashed_post', 'on_delete_members');
function on_delete_members()
{
    $post = get_post();
    if ($post->post_type === 'members' ) {
        $email_address = get_post_meta($post->ID, 'email', true);
        $user = get_user_by('email', $email_address);

        $id = $user->ID;

        wp_delete_user($id);

        wp_delete_post($post->ID, true);
    }
}
p4tfgftt

p4tfgftt1#

永远不要更改WordPress核心文件。永远不要!
您应该使用admin_notices钩子来自定义您的自定义帖子类型中的那些消息:

<?php
function so60507901_sample_admin_notice__success() {
    ?>
    <div class="notice notice-success is-dismissible">
        <p><?php _e( 'Done!', 'sample-text-domain' ); ?></p>
    </div>
    <?php
}
add_action( 'admin_notices', 'so60507901_sample_admin_notice__success' );
?>

一旦你的代码不完整,我就不能创建一个完整的工作示例,所以你需要根据自己的需要来调整它。

uujelgoq

uujelgoq2#

您需要使用的过滤器是bulk_post_updated_messages,它允许您过滤与批量操作相关的所有消息。有关该过滤器的文档是here
传递给回调函数的$bulk_messages参数包含批量操作使用的所有消息,作为一个关联的二维数组,其中第一级索引为post类型(例如postpage),第二级索引为:第一个元素是updated,第二个元素是locked,第三个元素是deleted,第四个元素是trashed,第五个元素是untrashed
如果自定义帖子类型没有定义自己的消息,则使用post帖子类型中的消息。
如果不想为自定义帖子类型创建自己的消息,可以添加以下回调函数:

add_filter( 'bulk_post_updated_messages', 'my_bulk_post_messages_filter' );

function my_bulk_post_messages_filter( $bulk_messages ) {
    global $post_type;

    if ( 'my_custom_post_type' === $post_type ) {
        $bulk_messages['post']['trashed'] = $bulk_messages['post']['deleted'];
    }

    return $bulk_messages;
}

回调将为永久删除的帖子定义的相同消息复制到已删除的帖子。由于您强制永久删除这些帖子,因此最终结果将是打印针对特定情况的正确消息。
当然,你也可以定义自己的完整消息集,特定于你的自定义帖子类型。
一个中间的解决方案是对某些操作使用默认消息,而只自定义要更改的消息。在这种情况下,可能的回调是:

add_filter( 'bulk_post_updated_messages', 'my_bulk_post_messages_filter', 10, 2 );

function my_bulk_post_messages_filter( $bulk_messages, $bulk_counts ) {
    global $post_type;

    if ( 'my_custom_post_type' === $post_type ) {
        $bulk_messages['my_custom_post_type'] = $bulk_messages['post'];
        $bulk_messages['my_custom_post_type']['trashed'] = _n( '%s member permanently deleted.', '%s members permanently deleted.', $bulk_counts['trashed'] );
    }

    return $bulk_messages;
}

相关问题