Я создал метабокс, который можно использовать для добавления боковой панели к сообщению. Функция get_sidebar будет добавлена в шаблон сообщения с помощью оператора if в зависимости от того, проверяет ли пользователь переключатель боковой панели или нет, но я еще не зашел так далеко.
Пока что метабокс отображается на экране редактора, но когда я проверяю переключатель на боковой панели, он возвращается неотмеченным после обновления сообщения.
Это то, что я использую, чтобы держать переключатель после обновления сообщения.
$layout = $_POST["layout"];
<input type="radio" name="layout" <?php if (isset($layout) && $layout=="right-sidebar") echo "checked"; ?> value="right-sidebar">
Это полный код, который я использую для создания и обновления метабокса:
<?php
function hill_add_layout_metabox() {
add_meta_box(
'layout_metabox',
'Layout1',
'hill_callback_layout_matabox',
'post',
'side',
'high'
);
}
add_action('add_meta_boxes', 'hill_add_layout_metabox');
function hill_callback_layout_matabox() {
$layout = $_POST["layout"];
?>
<input type="radio" name="layout" <?php if (isset($layout) && $layout=="right-sidebar") echo "checked"; ?> value="right-sidebar"> Right Sidebar
<?php
}
function hill_save_layout_metabox($post_id) {
$is_autosave = wp_is_post_autosave ( $post_id );
$is_revision = wp_is_post_revision ( $post_id );
if ( $is_autosave || $is_revision ) {
return;
}
$layout = $_POST["layout"];
if (isset($layout) && $layout=="right-sidebar") {
update_post_meta( $post_id, $layout );
}
}
add_action('save_post', 'hill_save_layout_metabox');
?>