@RushV

Как вывесть на страницу картинку (Wordpress)?

Всем привет!
Как реализовать на странице загрузка дополнительного фото?
Нашёл вот такой код а как вывести на страницу не знаю.
function add_custom_meta_boxes() {
 
    // Define the custom attachment for posts
    add_meta_box(
        'wp_custom_attachment',
        'Custom Attachment',
        'wp_custom_attachment',
        'post',
        'side'
    );
     
    // Define the custom attachment for pages
    add_meta_box(
        'wp_custom_attachment',
        'Custom Attachment',
        'wp_custom_attachment',
        'page',
        'side'
    );
 
} // end add_custom_meta_boxes
add_action('add_meta_boxes', 'add_custom_meta_boxes');

function wp_custom_attachment() {
 
    wp_nonce_field(plugin_basename(__FILE__), 'wp_custom_attachment_nonce');
     
    $html = '<p class="description">';
    $html .= 'Фон загаловка страницы.';
    $html .= '</p>';
    $html .= '<input type="file" id="wp_custom_attachment" name="wp_custom_attachment" value="" size="25" />';
     
    echo $html;
 
} // end wp_custom_attachment

После добавления этого кода на странице появилось дополнительное поле для загрузки файла
5c1221e8ece3c243484304.jpeg
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
xakplant
@xakplant
Автор сайта xakplant.ru
Вообще выводиться это с помощью функции get_post_meta($postID, 'meta_box_id', true);
Но в вашем коде нет обработчика сохранения данных.
Вам нужно не только отобразить виджет в админке, но и по событию save_post сохранить то что вы в него положили.
Пример кода
function fgb_fs_gallery_id_callback( $post, $meta ){
    $screens = $meta['args'];
    // Используем nonce для верификации
    wp_nonce_field( plugin_basename(__FILE__), 'fgb_fsg_id_noncename' );
    // Поля формы для введения данных
    echo '<label for="fgb_fsg_id">' . __("Put gallery id", 'fgb' ) . '</label> ';
    echo '<input type="text" id= "fgb_fsg_id" name="fgb_fsg_id" size="2"  value="'. get_post_meta( $post->ID, '_fgb_fsg_id',true ) .'"/>';
}
// Сохраняем данные, когда пост сохраняется
add_action( 'save_post', 'fgb_fsg_id_save_postdata' );
function fgb_fsg_id_save_postdata( $post_id ) {
    // Убедимся что поле установлено.
    if ( ! isset( $_POST['fgb_fsg_id'] ) )
        return;
    // проверяем nonce нашей страницы, потому что save_post может быть вызван с другого места.
    if ( ! wp_verify_nonce( $_POST['fgb_fsg_id_noncename'], plugin_basename(__FILE__) ) )
        return;
    // если это автосохранение ничего не делаем
    if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
        return;
    // проверяем права юзера
    if( ! current_user_can( 'edit_post', $post_id ) )
        return;
    // Все ОК. Теперь, нужно найти и сохранить данные
    // Очищаем значение поля input.
    $my_data = sanitize_text_field( $_POST['fgb_fsg_id'] );
    // Обновляем данные в базе данных.
    update_post_meta( $post_id, '_fgb_fsg_id', $my_data );
}


Я недавно реализовывал галерею на wordpress, возможно вы делаете что-то похожее. Посмотрите здесь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы