플러그인 활성화에서 관리 패널에 알림을 표시하는 방법
테스트 플러그인을 활성화할 때 관리 패널에 알림을 표시하려고 합니다.
그걸 어떻게 전시하면 되죠?그 방법은 무엇입니까?
플러그인 활성화의 경우 리디렉트가 있기 때문에 'sublicin_notices' 후크를 직접 사용할 수 없습니다.회피책은 알림을 옵션테이블에 저장하고 다음 번에 확인하는 것입니다.또, 플러그 인의 업그레이드나 액티베이션에 대해서도 다루고 싶은 경우는, 「admin_init」등의 다른 훅을 사용할 필요가 있습니다(WP 3.1 이후는, http://make.wordpress.org/core/2010/10/27/plugin-activation-hooks/) 를 참조해 주세요).
다음은 활성화와 업그레이드를 모두 처리하는 전체 플러그인 샘플입니다.당신이 쌓을 수 있도록 지연 통지를 배열로 만들어 놨어요.
<?php
/*
Plugin Name: My Plugin
*/
register_activation_hook(__FILE__, 'my_plugin_activation');
function my_plugin_activation() {
$notices= get_option('my_plugin_deferred_admin_notices', array());
$notices[]= "My Plugin: Custom Activation Message";
update_option('my_plugin_deferred_admin_notices', $notices);
}
add_action('admin_init', 'my_plugin_admin_init');
function my_plugin_admin_init() {
$current_version = 1;
$version= get_option('my_plugin_version');
if ($version != $current_version) {
// Do whatever upgrades needed here.
update_option('my_plugin_version', $current_version);
$notices= get_option('my_plugin_deferred_admin_notices', array());
$notices[]= "My Plugin: Upgraded version $version to $current_version.";
update_option('my_plugin_deferred_admin_notices', $notices);
}
}
add_action('admin_notices', 'my_plugin_admin_notices');
function my_plugin_admin_notices() {
if ($notices= get_option('my_plugin_deferred_admin_notices')) {
foreach ($notices as $notice) {
echo "<div class='updated'><p>$notice</p></div>";
}
delete_option('my_plugin_deferred_admin_notices');
}
}
register_deactivation_hook(__FILE__, 'my_plugin_deactivation');
function my_plugin_deactivation() {
delete_option('my_plugin_version');
delete_option('my_plugin_deferred_admin_notices');
}
업데이트: 일반적인 사용 방법도 있습니다.set_transient()대신update_option()올바른 관리 사용자에게 메시지를 보냅니다.이 투고는 플러그인의 액티베이션이 아닌 메타박스에 관한 것입니다만, 제가 아는 한, 이 기술은 Dashboard의 모든 곳에서 동일하게 동작합니다.https://wordpress.stackexchange.com/questions/15354/passing-error-warning-messages-from-a-meta-box-to-admin-notices
이것은 안내문을 표시하는 것은 매우 간단합니다.
function your_admin_notice(){
echo '<div class="updated">
<p>I am a little yellow notice.</p>
</div>';
}
add_action('admin_notices', 'your_admin_notice');
그러나 해제 가능 알림을 표시하려면 아래를 참조하십시오.
add_action('admin_notices', 'example_admin_notice');
function example_admin_notice() {
global $current_user ;
$user_id = $current_user->ID;
/* Check that the user hasn't already clicked to ignore the message */
if ( ! get_user_meta($user_id, 'example_ignore_notice') ) {
echo '<div class="updated"><p>';
printf(__('This is an annoying nag message. Why do people make these? | <a href="%1$s">Hide Notice</a>'), '?example_nag_ignore=0');
echo "</p></div>";
}
}
add_action('admin_init', 'example_nag_ignore');
function example_nag_ignore() {
global $current_user;
$user_id = $current_user->ID;
/* If user clicks to ignore the notice, add that to their user meta */
if ( isset($_GET['example_nag_ignore']) && '0' == $_GET['example_nag_ignore'] ) {
add_user_meta($user_id, 'example_ignore_notice', 'true', true);
}
}
그리고 특정 페이지에 해당 알림을 표시하고 싶다면 아래 조건을 사용해 보십시오.
function my_admin_notice(){
global $pagenow;
if ( $pagenow == 'plugins.php' ) {
echo '<div class="updated">
<p>This notice only appears on the plugins page.</p>
</div>';
}
}
add_action('admin_notices', 'my_admin_notice');
그냥 사용하다<div class='updated'>예를 들어 -
echo "<div class='updated'>Test Plugin Notice</div>";
새로운 관리 알림을 사용하여 관리 포인터라고 하는 것을 생성할 수 있습니다.show_wp_pointer_admin_bar.
Linky: http://wpengineer.com/2272/how-to-add-and-deactivate-the-new-feature-pointer-in-wordpress-3-3/
알림을 추가하는 적절한 방법은 후크에 에코하여admin_notices액션:
function wpse8170_admin_notice(){
echo '<div class="updated"><p>This is my notice.</p></div>';
}
add_action('admin_notices', 'wpse8170_admin_notice');
amarkal-admin-notification을 개발했습니다.이 스크립트는 정적/삭제 가능한 관리 알림을 추가하여 해고를 처리할 수 있도록 합니다.이 스크립트는 Amarkal WordPress 프레임워크 내의 모듈입니다.
예를 들어 다음과 같습니다.
amarkal_admin_notification( 'my-error-notice', __('Oh snap! This is an <strong>error</strong> message.','slug'), 'error');
언급URL : https://stackoverflow.com/questions/9807064/how-to-display-notice-in-admin-panel-on-plugin-activation
'programing' 카테고리의 다른 글
| Spring Boot 환경 변수 읽기 (0) | 2023.03.06 |
|---|---|
| 스프링 부트 - @ConditionalOnProperty 또는 @ConditionalOnExpression (0) | 2023.03.06 |
| Node events.js:167 throw er; // 처리되지 않은 '오류' 이벤트 (0) | 2023.03.06 |
| Swift [45] 디코딩 가능한 프로토콜에서 JSON 사전 유형을 사용하여 속성을 디코딩하는 방법 (0) | 2023.03.06 |
| Oracle SQL Developer에서 변수 대체를 피하는 방법 (0) | 2023.03.06 |