Добавить пользовательскую опцию в стандартный метакаталог атрибутов страницы

Я хотел бы добавить простой флажок для существующего стандартного метакаталога атрибутов страницы.

Есть ли очевидный / намеченный способ сделать это с помощью WordPress API, а не регистрировать новый обмен для моего нового варианта?

Solutions Collecting From Web of "Добавить пользовательскую опцию в стандартный метакаталог атрибутов страницы"

К сожалению нет. Единственный способ – отменить регистрацию метабокса, а затем перерегистрировать его, предоставив свою собственную функцию обратного вызова, которая имитирует исходный обмен, но с вашими изменениями (убедитесь, что имена входов не изменяются).

Этот метод описан в этих сообщениях:

  • пользовательские почтовые типы таксономий UI radioobuttons not checkboxes
  • Таможенная таксономия как категории: Удалить вкладку «наиболее часто используемые»?

В качестве альтернативы вы можете вставить параметры с помощью javascript, как указано в:

  • Как добавить напоминания / заметки в метатеги New Post

Стивен Харрис осторожно указал, что я неправильно понял вопрос. К сожалению, нет никаких действий post_submitbox_publish_actions где мы можем подключиться.

Итак, чтобы заставить мое решение работать, обходным путем является сделать jQuery перемещать флажок из исходного места размещения. Я добавил сценарий, чтобы это произошло.

Это полная дикая попытка сделать это, основываясь на
– это Q & A: Как переместить автора Metabox в «Опубликовать» метаболизм?
– и первый пример кода: http://codex.wordpress.org/Function_Reference/add_meta_box

Я запускаю код внутри плагина ( wp-content/mu-plugins/tests.php ) и не тестировался с functions.php

Я не могу гарантировать, что это «правильный» код, но он работает в моем локальном WordPress.

 add_action( 'post_submitbox_misc_actions', 'wpse_52193_custombox_in_publish' ); add_action( 'save_post', 'wpse_52193_save_postdata' ); add_action( 'admin_head', 'wpse_52193_script_enqueuer'); function wpse_52193_custombox_in_publish() { global $post; if ('page' != get_post_type($post)) return; wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename' ); $checked = (get_post_meta($post->ID, 'myplugin_new_field',true)) ? 'checked="yes"' : ''; echo '<div id="myplugin_new_field_div" class="misc-pub-section" style="border-top-style:solid; border-top-width:1px; border-top-color:#EEEEEE; border-bottom-width:0px;"><div style="font-weight: bold;">Description for this field:</div>'; echo '<input name="myplugin_new_field" id="myplugin_new_field" type="checkbox" '.$checked.'>'; echo '</div>'; } function wpse_52193_save_postdata( $post_id ) { if ( 'page' != $_POST['post_type'] ) return; if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; if ( !wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename( __FILE__ ) ) ) return; $mydata = $_POST['myplugin_new_field']; update_post_meta($post_id, 'myplugin_new_field', $mydata); } function wpse_52193_script_enqueuer(){ global $current_screen; if('page' != $current_screen->id) return; echo '<script type="text/javascript"> jQuery(document).ready( function($) { $("#myplugin_new_field_div").appendTo("#pageparentdiv"); }); </script>'; } 

на этом сайте есть много вопросов для этого, как этот поиск , а также поиск по Google

также рабочий пример ( git rebo ), который вы можете использовать и изменить для своего требования