问题描述
WordPress 有什么类似于 Drupal 的 drupal_set_message 功能?我想通知用户某些东西,希望有一个内置的 API 调用来做到这一点。
最佳解决方案
这是一个想法:使用 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
变量,但是在几个星期前,我学到了一个客户端的项目。感谢您提醒这个问题,@凯撒!这是使用 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;
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。