2014-01-02 4 views
0

Я хотел бы иметь возможность добавить новый «виджет» на боковой панели раздела admin, в частности, на «New Page» и «Edit Страница "страницы.Wordpress 'add_action' content to 'postbox-container-1' в разделе администратора

Я просматриваю документацию Wordpress API, но я не могу найти, где добавить новый раздел в первый раздел «postbox-container-1».

Если вы заходите в раздел администрирования Wordpress, а затем нажмите кнопку «Добавить страницу», я хотел бы добавить новый виджет в «Виджеты публикации/страницы/Featured Image».

Ближайший я пришел, это: add_action('dbx_post_sidebar', 'pluginFunctionHere');. К сожалению, это добавляет весь мой контент в главном редакторе WYSIWYG.

Я знаю, как добавить его регулярно, но я хотел бы сделать это плагином для общего использования. Есть идеи? или есть конкретный крючок для этого раздела?

+0

Возможно, вы хотите добавить Metabox на страницы «Редактировать страницу» и «Создать новую страницу»? – Shazzad

+0

@Shazzad Является ли метаболизм тем же, что и «Опубликовать», «Атрибуты страницы» и «Лучшее изображение»? Я знаю программирование, но это мой первый визит в Wordpress ... http://themergency.com/wordpress-meta-box-roundup/ – ntgCleaner

ответ

1

Для того чтобы узнать ваше мнение о данном оборудовании, вам необходимо зарегистрироваться, чтобы просмотреть. Вы можете использовать крюк add_meta_boxes_page.

add_action("add_meta_boxes_page", "se20892273_add_meta_boxes_page"); 

// Register Your Meta box 
function se20892273_add_meta_boxes_page($post) 
{ 
    add_meta_box( 
     'se20892273_custom_meta_box', // this is HTML id 
     'Metabox Title', 
     'se20892273_custom_meta_box', // the callback function 
     'page', // register on post type = page 
     'side', // 
     'core' 
    ); 
} 

Затем с помощью функции обратного вызова для генерации шаблона

function se20892273_custom_meta_box($post) 
{ 
    // you will get the $post object 
    // do your stuff here 
} 

Чтобы сохранить любое значение входного сигнала, используемое на вашей мету окна, используйте «save_post_page» крюка.

add_action("save_post_page", "se20892273_save_post_page"); 
function se20892273_save_post_page($post_ID) 
{ 
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) 
     return $post_ID ; 

    if(isset($_POST['input_name'])) 
    { 
     update_post_meta($post_ID, '_w4_template', $_POST['input_name']); 
    } 
} 
+0

Отличный ответ, спасибо. Мне особенно нравится добавленный бит о публикации. – ntgCleaner

2

Я пробовал приведенный выше пример, но это не сработало. Затем я искал, чего не хватает, и нашел его. Я немного изменил original.

/** 
* Register meta box(es). 
*/ 
function wpdocs_register_meta_boxes() { 
    add_meta_box('meta-box-id', __('Metabox Title', 'textdomain'), 'wpdocs_my_display_callback', 'post', 'side', 'high'); 
} 
add_action('add_meta_boxes', 'wpdocs_register_meta_boxes'); 

/** 
* Meta box display callback. 
* 
* @param WP_Post $post Current post object. 
*/ 
function wpdocs_my_display_callback($post) { 
    // Display code/markup goes here. Don't forget to include nonces! 
    ?> <h1>Test</h1><?php 
} 

/** 
* Save meta box content. 
* 
* @param int $post_id Post ID 
*/ 
function wpdocs_save_meta_box($post_id) { 
    // Save logic goes here. Don't forget to include nonce checks! 
} 
add_action('save_post', 'wpdocs_save_meta_box'); 
+0

Спасибо за напоминания о проверках nonce – realtebo

Смежные вопросы