コアのアップグレード後に「About」へのリダイレクトを防ぐ方法は?


9

ではwp-admin/includes/update-core.php、次の行を見つけます。

add_action( '_core_updated_successfully', '_redirect_to_about_wordpress' );

このアクションを削除したいので、次の内容でmuプラグインを作成しました。

<?php # -*- coding: utf-8 -*-
add_action( '_core_updated_successfully', 't5_no_redirect_after_update', 0 );

function t5_no_redirect_after_update()
{
    remove_action( '_core_updated_successfully', '_redirect_to_about_wordpress' );
}

それは…何もしません。私はまだリダイレクトされています。シングルサイトおよびマルチサイトのインストールでテストされています。

いつものように、私は何か明白なものを見逃していると思います。:)
それをよりよくする方法は?

更新

ブレイディの答えに基づいて、私は非常に最小限のバージョンを作成します:

<?php # -*- coding: utf-8 -*-
/* Plugin Name: T5 No redirect after core upgrade. */
add_action( '_core_updated_successfully', 't5_no_redirect_after_update', 0 );

function t5_no_redirect_after_update()
{
    show_message( __('WordPress updated successfully') );

    // Include admin-footer.php and exit
    include(ABSPATH . 'wp-admin/admin-footer.php');

    exit;
}

これで成功メッセージが表示され、他のアクションは呼び出されません。プラグインはGitHubからダウンロードできます。通常のプラグインまたはMUプラグインとして使用します。


_core_updated_successfully@Brady作用によって言及は3.8から欠落しているようだ。*(> 3.7 ??)。交換のアイデアはありますか?
krembo99 2014

@ krembo99それはまだそこにあります:/wp-admin/includes/update-core.phpファイルの終わりに。
fuxia

うん。カスタムコアインストールを見ていました。
krembo99 2014

回答:


6

アクションを削除せず、その前に独自のアクションを追加します。アクションを削除すると、正常にアップグレードされたことを示すメッセージは表示されません。ここでは、次に何をすべきかについて独自の情報を提供できます。

function tp_dont_redirect_to_about_wordpress( $new_version ) {
    global $wp_version, $pagenow, $action;

    if ( version_compare( $wp_version, '3.4-RC1', '>=' ) )
        return;

    // Ensure we only run this on the update-core.php page. wp_update_core() could be called in other contexts.
    if ( 'update-core.php' != $pagenow )
        return;

    if ( 'do-core-upgrade' != $action && 'do-core-reinstall' != $action )
        return;

    // Load the updated default text localization domain for new strings
    load_default_textdomain();

    // See do_core_upgrade()
    show_message( __('WordPress updated successfully') );
    show_message( '<span>' . sprintf( __( 'Welcome to WordPress %1$s. <a href="%2$s">Learn more</a>.' ), $new_version, esc_url( self_admin_url( 'about.php?updated' ) ) ) . '</span>' );
    echo '</div>';

    // Include admin-footer.php and exit
    include(ABSPATH . 'wp-admin/admin-footer.php');
    exit();
}
add_action( '_core_updated_successfully', 'tp_dont_redirect_to_about_wordpress', 1, 1 );

チャットで、アクションを削除するのが難しいことを示したので、アクションを削除せず、その前に追加するソリューションを探し始めました。

上記のコードは、フックするコア関数のコピーです_core_updated_successfullyが、リダイレクトといくつかのメッセージを取り除いています。

ご覧のとおりexit();、関数の最後にがあるので、この関数を他の関数の前にフックすると、出口はそれ以上のフックの起動を停止するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.