web-dev-qa-db-ja.com

ユーザープロファイルページにグローバルメッセージを表示する方法(バックエンド)

自分のプロフィールページにすべてのユーザーのためのグローバルメッセージを表示したいです。 profile.phpを編集したくありませんこれを行うためのhookは何ですか?

基本的に、メッセージdiv id <div id="message" class="updated">の下と<form id="your-profile" novalidate="novalidate" method="post" action="http://localhost/wordpress/gantry/demo2/wp-admin/profile.php">の上にdivを表示するためにparagraphを追加したいです。

into this

1
Riffaz Starr

あなたのfunction.phpにこのコードを追加してください

<?php
function showMessage($message, $errormsg = false)
{
    if ($errormsg) {
        echo '<div id="message" class="error">';
    }
    else {
        echo '<div id="message" class="updated fade">';
    }
    echo "<p><strong>$message</strong></p></div>";
} 

function showAdminMessages()
{
    showMessage("This is my message.", true);
}
add_action('admin_notices', 'showAdminMessages');
?>
1
namira

残念ながらこれは不可能で、wp-admin/edit-use.phpで使うフックがありません。

一番近いのは、Personal Optionsの下に何かを置くことです。ただし、このフックはそのセクションの最後に呼び出されているので、ページの少し下にメッセージが表示されます -

add_action('personal_options', 'my_edit_user_admin_message');
function my_edit_user_admin_message(){
?>
    <tr class="show-admin-bar user-admin-bar-front-wrap">
        <th scope="row"><label for="admin_bar_front"><?php _e( 'Admin message' )?></label></th>
        <td><fieldset>
                <legend class="screen-reader-text"><span><?php _e('Admin message') ?></span></legend>
                <label><p id="my-admin-message">This is my message.</p></label><br />
        </fieldset></td>
    </tr>
<?php
}

技術的には有効ではありませんが(ほとんどではありませんが、ブラウザで修正されます)、代わりに次のコードを使用して、メッセージを個人用オプションセクションの先頭に移動します。それでもヘッダーの下にあります。

ただし、block要素をtable要素内にネストすることは無効であるため、使用しないことをお勧めします。

add_action('personal_options', 'my_edit_user_admin_message');
function my_edit_user_admin_message(){
?>
    <div id="my-admin-message">
        <p>This is my message.</p>
    </div>
<?php
}
0
David Gard