Имеет ли Wordpress встроенную функцию сообщения для представления уведомлений пользователям?

Есть ли у Wordpress что-то похожее на функцию drupal_set_message от Drupal? Я хочу уведомить пользователя о чем-то и надеялся, что для этого был встроенный API-запрос.

7 голосов | спросил SomethingOn 31 J000000Tuesday12 2012, 06:06:45

2 ответа


3

Вот идея: используйте save_post , чтобы установить сеанс, содержащий сообщение, которое вы хотите показать пользователю, а затем перенаправить на домашнюю страницу. В шаблоне домашней страницы проверьте наличие этого сеанса и покажите сообщение пользователю.

Что-то вроде этого:

functions.php:

add_action( 'save_post', 'wpse60249_save_post' );

function wpse60249_save_post( $post_id ) {
    session_start();
    $_SESSION[ 'message' ] = __( 'Your text here...' );
}

index.php (или соответствующий шаблон):

if ( isset( $_SESSION[ 'message' ] ) :
    echo $_SESSION[ 'message' ];
    unset( $_SESSION[ 'message' ] );
endif;

Редактировать 10/21/2012

Когда я написал этот ответ, я не знал, что WordPress сбрасывает переменную $_SESSION, но я узнал, что пару недель назад работая над проектом для клиента. Спасибо за напоминание об этом вопросе, @kaiser! Здесь обновлен код, используя переходные процессы :

functions.php:

add_action( 'save_post', 'wpse60249_save_post' );

function wpse60249_save_post( $post_id ) {
    session_start();
    set_transient( 'temporary_message', __( 'Your text here...' ), 60*60*12 );
}

index.php (или соответствующий шаблон):

if ( false !== ( $temp_message = get_transient( 'temporary_message' ) ) :
    echo $temp_message;
    delete_transient( 'temporary_message' );
endif;
ответил Joseph Leedy 31 J000000Tuesday12 2012, 06:51:22
1

Появится сообщение об ошибке и сообщение об ошибке, которое вы можете использовать в admin_notices.

Контрольный плагин

/* Plugin Name: Admin Notice w test message */
function wpse60244_custom_admin_notice()
{
    return print '<div id="message" class="updated fade"><p><strong>Hi!</strong> Look at me! In theory I should even fade out after a short time span!</p></div>';
}
add_action( 'admin_notices', 'wpse60244_custom_admin_notice' );

Вы можете выбросить это в свою папку плагинов и дать ему тест.

Sidenotes

Вы могли бы - в теории также использовать крючок admin_head, чтобы вызвать добавление действия. Если вам это нужно только на определенных экранах /страницах пользовательского интерфейса администратора, проверьте global $taxnow, $pagenow; или используйте admin_head-{$hook_suffix}.

ответил kaiser 31 J000000Tuesday12 2012, 07:39:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132