У меня есть следующий код, все сохраняет правильно, но я не могу правильно отобразить его на главной странице веб-сайта.Проблемы с отображением Metabox в Wordpress
Проблема заключается в том, что отображается в два раза на страницу сообщения и появляется в случайном месте на главной странице. Однако я хочу, чтобы он отображался только в определенном месте на домашней странице.
function home_page_position_get_meta($value) {
global $post;
$field = get_post_meta($post->ID, $value, true);
if (! empty($field)) {
return is_array($field) ? stripslashes_deep($field) : stripslashes(wp_kses_decode_entities($field));
} else {
return false;
}
}
function home_page_position_add_meta_box() {
add_meta_box(
'home_page_position-home-page-position',
__('Home Page Position', 'home_page_position'),
'home_page_position_home_page_position_html',
'post',
'side',
'default'
);
}
add_action('add_meta_boxes', 'home_page_position_add_meta_box');
function home_page_position_home_page_position_html($post) {
wp_nonce_field('_home_page_position_home_page_position_nonce', 'home_page_position_home_page_position_nonce');
$home_page_position_home_page_position_box_position_value = get_post_meta($post->ID,'home_page_position_home_page_position_box_position',true);
?>
<p>
<label for="home_page_position_home_page_position_box_position"><?php _e('Box Position', 'home_page_position'); ?></label><br>
<select name="home_page_position_home_page_position_box_position">
<option id='none-none' value='none' name='none_' <?php selected($home_page_position_home_page_position_box_position_value, 'none'); ?> >None</option>
<option id='box-01' value='box01' name='box_01' <?php selected($home_page_position_home_page_position_box_position_value, 'box01'); ?> >Box 01</option>
<option id='box-02' value='box02' name='box_02' <?php selected($home_page_position_home_page_position_box_position_value, 'box02'); ?> >Box 02</option>
<option id='box-03' value='box03' name='box_03' <?php selected($home_page_position_home_page_position_box_position_value, 'box03'); ?> >Box 03</option>
</select>
</p> <p>
<label for="home_page_position_home_page_position_page_title"><?php _e('Page Title', 'home_page_position'); ?></label><br>
<input type="text" name="home_page_position_home_page_position_page_title" id="home_page_position_home_page_position_page_title" value="<?php echo home_page_position_get_meta('home_page_position_home_page_position_page_title'); ?>">
</p> <p>
<label for="home_page_position_home_page_position_introduction"><?php _e('Introduction', 'home_page_position'); ?></label><br>
<textarea name="home_page_position_home_page_position_introduction" id="home_page_position_home_page_position_introduction" ><?php echo home_page_position_get_meta('home_page_position_home_page_position_introduction'); ?></textarea>
</p> <p>
<label for="home_page_position_home_page_position_link_to_page"><?php _e('Link To Page', 'home_page_position'); ?></label><br>
<input type="text" name="home_page_position_home_page_position_link_to_page" id="home_page_position_home_page_position_link_to_page" value="<?php echo home_page_position_get_meta('home_page_position_home_page_position_link_to_page'); ?>">
</p><?php
}
function home_page_position_home_page_position_save($post_id) {
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (! isset($_POST['home_page_position_home_page_position_nonce']) || ! wp_verify_nonce($_POST['home_page_position_home_page_position_nonce'], '_home_page_position_home_page_position_nonce')) return;
if (! current_user_can('edit_post')) return;
if (isset($_POST['home_page_position_home_page_position_box_position']))
update_post_meta($post_id, 'home_page_position_home_page_position_box_position', esc_attr($_POST['home_page_position_home_page_position_box_position']));
if (isset($_POST['home_page_position_home_page_position_page_title']))
update_post_meta($post_id, 'home_page_position_home_page_position_page_title', esc_attr($_POST['home_page_position_home_page_position_page_title']));
if (isset($_POST['home_page_position_home_page_position_introduction']))
update_post_meta($post_id, 'home_page_position_home_page_position_introduction', esc_attr($_POST['home_page_position_home_page_position_introduction']));
if (isset($_POST['home_page_position_home_page_position_link_to_page']))
update_post_meta($post_id, 'home_page_position_home_page_position_link_to_page', esc_attr($_POST['home_page_position_home_page_position_link_to_page']));
}
add_action('save_post', 'home_page_position_home_page_position_save');
function cd_display_quote($value)
{
// We're in the loop, so we can grab the $post variable
global $post;
$position = get_post_meta($post->ID, 'home_page_position_home_page_position_box_position', true);
$pTitle = get_post_meta($post->ID, 'home_page_position_home_page_position_page_title', true);
$intro = get_post_meta($post->ID, 'home_page_position_home_page_position_introduction', true);
$link = get_post_meta($post->ID, 'home_page_position_home_page_position_link_to_page', true);
if($position != 'none') {
echo $position;
echo $pTitle;
echo $intro;
echo $link;
}
// Return the values: quote first, then the content
return $value;
}
add_action('the_content', 'cd_display_quote');
Большое вам спасибо! Все еще учится и пытается понять, что происходит. очень оценен. –