WordPress有内置的消息功能来向用户显示通知吗?

时间:2012-07-31 作者:SomethingOn

Wordpress和Drupal有相似之处吗drupal_set_message 作用我想通知用户一些事情,并希望有一个内置的API调用来做到这一点。

2 个回复
最合适的回答,由SO网友:Joseph Leedy 整理而成

这里有一个想法:使用save_post 钩子设置一个会话,其中包含要向用户显示的消息,然后重定向到主页。在主页模板中,检查是否存在该会话,并向用户显示消息。

类似这样:

功能。php:

add_action( \'save_post\', \'wpse60249_save_post\' );

function wpse60249_save_post( $post_id ) {
    session_start();
    $_SESSION[ \'message\' ] = __( \'Your text here...\' );
}
索引。php(或适当的模板):

if ( isset( $_SESSION[ \'message\' ] ) :
    echo $_SESSION[ \'message\' ];
    unset( $_SESSION[ \'message\' ] );
endif;
<小时>

Edit 10/21/2012

当我写下这个答案时,我不知道WordPress会重置$_SESSION 变量,但几周前我在为客户做项目时了解到了这一点。谢谢你提醒我这个问题,@kaiser!下面是使用transients 而是:

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;

SO网友:kaiser

有一个更新和一条错误消息,您可以在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\' );
你可以把这个放在你的插件文件夹中,并对它进行测试。

旁注

理论上也可以使用admin_head 钩子来触发添加操作。如果您只在特定的管理UI屏幕/页面上需要它,请检查global $taxnow, $pagenow; 或使用admin_head-{$hook_suffix}

结束

相关推荐