Hat Wordpress etwas Ähnliches wie die Funktion drupal_set_message von Drupal ? Ich möchte den Benutzer über etwas informieren und hatte gehofft, dass es einen eingebauten API-Aufruf gibt, um dies zu tun.
Hat Wordpress etwas Ähnliches wie die Funktion drupal_set_message von Drupal ? Ich möchte den Benutzer über etwas informieren und hatte gehofft, dass es einen eingebauten API-Aufruf gibt, um dies zu tun.
Antworten:
Hier ist eine Idee: Verwenden Sie den save_post
Hook, um eine Sitzung mit der Nachricht festzulegen, die Sie dem Benutzer anzeigen möchten, und leiten Sie dann zur Startseite weiter. Überprüfen Sie in der Homepage-Vorlage, ob diese Sitzung vorhanden ist, und zeigen Sie dem Benutzer die Nachricht an.
Etwas wie das:
functions.php:
add_action( 'save_post', 'wpse60249_save_post' );
function wpse60249_save_post( $post_id ) {
session_start();
$_SESSION[ 'message' ] = __( 'Your text here...' );
}
index.php (oder entsprechende Vorlage):
if ( isset( $_SESSION[ 'message' ] ) :
echo $_SESSION[ 'message' ];
unset( $_SESSION[ 'message' ] );
endif;
Bearbeiten 21.10.2012
Als ich diese Antwort schrieb, wusste ich nicht, dass WordPress die $_SESSION
Variable zurücksetzt , aber ich habe das vor ein paar Wochen erfahren, als ich an einem Projekt für einen Kunden arbeitete. Vielen Dank für die Erinnerung an diese Frage, @kaiser! Hier ist aktualisierter Code, der stattdessen Transienten verwendet:
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
(oder entsprechende Vorlage):
if ( false !== ( $temp_message = get_transient( 'temporary_message' ) ) :
echo $temp_message;
delete_transient( 'temporary_message' );
endif;
$_SESSION
funktioniert in WP nicht richtig. Sie werden beim Start / Anforderungsstart vom Kern deaktiviert.
Es gibt ein Update und eine Fehlermeldung, die Sie am admin_notices
Hook verwenden können.
/* 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' );
Sie können dies in Ihren Plugins-Ordner werfen und testen.
Sie könnten - theoretisch auch den admin_head
Hook verwenden, um das Hinzufügen der Aktion auszulösen. Wenn Sie es nur auf bestimmten Bildschirmen / Seiten der Administrator-Benutzeroberfläche benötigen, suchen Sie nach global $taxnow, $pagenow;
dem admin_head-{$hook_suffix}
Hook oder verwenden Sie ihn .
return print
?! Hehe ;-)
return print
?
print
hat nichts zurückgegeben, aber laut den Dokumenten gibt es immer 1 zurück.