Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?
- function my_extra_fields_content( $post )
- {
- // URL-ы загруженных изображений будем сохранять в мета-полях
- $post_title_z = get_post_meta($post->ID, 'post_title_z', 1);
- $preview = get_post_meta($post->ID, 'post_preview', 1);
- ?>
- <label for="post_title_z">
- <h4>Заголовок для записи</h4>
- <input id="post_title_z" type="text" size="45" name="post_title_z" value="<?php echo $post_title_z; ?>" />
- </label>
- <label for="post_preview">
- <h4>Изображение</h4>
- <input id="post_preview" type="text" size="45" name="post_preview" value="<?php echo $preview; ?>" />
- <input id="post_preview_button" type="button" class="button" value="Загрузить" />
- <br />
- <small>Вставьте URL изображения для записи или загрузите его</small>
- </label>
- <!-- Создаем проверочное поле для проверки того, что данные пришли с нашей формы -->
- <input type="hidden" name="extra_field_nonce" value="<?php echo wp_create_nonce(__FILE__); ?>" />
- <?php
- }
- // Добавляем мета-блок с нашей формой на странице редактирования записи
- function my_add_extra_fields() {
- add_meta_box( 'extra_fields', ' ', 'my_extra_fields_content', 'post', 'normal', 'high' );
- }
- if( is_admin() ) add_action('admin_init', 'my_add_extra_fields', 1);
- function my_add_upload_scripts() {
- wp_enqueue_script('media-upload');
- wp_enqueue_script('thickbox');
- wp_register_script(
- 'my-upload-script'
- /* Подключаем JS-код задающий поведение
- * загрузчика и указывающий, куда вставлять
- * ссылку после загрузки изображения
- * Его код будет приведен ниже.
- */
- ,get_bloginfo('template_url').'/js/upload.js'
- /* Указываем скрипты, от которых
- * зависит наш JS-код
- */
- ,array('jquery','media-upload','thickbox')
- );
- wp_enqueue_script('my-upload-script');
- }
- // Запускаем функцию подключения загрузчика
- if( is_admin() )
- add_action('admin_print_scripts', 'my_add_upload_scripts');
- function my_extra_fields_content_update( $post_id ){
- // Если данные пришли не из нашей формы, ничего не делаем
- if ( !wp_verify_nonce($_POST['extra_field_nonce'], __FILE__) )
- return false;
- // Если это автосохранение, то ничего не делаем
- if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
- return false;
- // Проверяем права пользователя
- if ( !current_user_can('edit_post', $post_id) )
- return false;
- $extra_fields = array(
- 'post_title_z' => $_POST['post_title_z'],
- 'post_preview' => $_POST['post_preview']
- );
- $extra_fields = array_map('trim', $extra_fields);
- foreach( $extra_fields as $key=>$value ){
- // Очищаем, если пришли пустые значения полей
- if( empty($value) ) delete_post_meta($post_id, $key);
- // Обновляем, (или создаем) в случае не пустых значений
- if($value) update_post_meta($post_id, $key, $value);
- }
- return $post_id;
- }
- // Запускаем обработчик формы во время сохранения записи
- if( is_admin() )
- add_action('save_post', 'my_extra_fields_content_update', 0);
- //свой размер изображения
- if ( function_exists( 'add_image_size' ) ) {
- add_image_size( 'thumb-707х231', 707, 231, true );
- }
- add_filter( 'image_size_names_choose', 'new_custom_sizes' );
- function new_custom_sizes( $sizes ) {
- return array_merge( $sizes, array(
- 'thumb-707х231' => 'Размер 707х231'
- ) );
- }
- <?
- jQuery(document).ready(function() {
- jQuery('#post_preview_button').click(function() {
- formfield = jQuery('#post_preview').attr('name');
- tb_show('', 'media-upload.php?type=image&TB_iframe=true&ETI_field=post_preview');
- window.send_to_editor = function(html) {
- imgurl = jQuery('img',html).attr('src');
- jQuery('input[name='+formfield+']').val(imgurl);
- tb_remove();
- }
- return false;
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement