問題描述
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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。