Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now
Sign InSign Up

PHP-J

PHP-J

PHP-J Navigation

  • Главная
  • Контакты
Поиск
Задать вопрос

Mobile menu

Close
Задать вопрос
  • Главная
  • Add group
  • User Profile
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Buy Points
Home/ Questions/Q 82629
Next
Answered
kevin
  • 0
kevinУчитель
Asked: 20 марта, 20222022-03-20T17:05:30+03:00 2022-03-20T17:05:30+03:00In: Wordpress (Вопросы и ответы)

Активировать диалоговое окно «несохраненные изменения» для пользовательских метаданных изменений

  • 0

Я использую настраиваемый тип сообщения с настраиваемыми мета-полями, но автосохранение и диалоговое окно «несохраненные изменения», похоже, не запускаются для этих настраиваемых мета-полей. Автосохранение не так важно для меня, как диалоговое окно несохраненных изменений — есть ли способ его вызвать?

function add_meta_boxes() {
    add_meta_box('places_location', __('Location'), array(&$this, 'location_box'), 'place', 'normal', 'high');
}

function location_box($post) {
    wp_nonce_field(plugin_basename(__FILE__), 'places_location_nonce');

    $lat = get_post_meta($post->ID, 'places_lat', true);
    $lng = get_post_meta($post->ID, 'places_lng', true);

    ?>
    <p>
        <label>
            Latitude:
            <input name="places_lat" value="<?php echo esc_attr($lat); ?>" />
        </label>
        <label>
            Longitude:
            <input name="places_lng" value="<?php echo esc_attr($lng); ?>" />
        </label>
    </p>
    <?php
}

function save_place($id) {
    // skip unverified location nonces
    if(!wp_verify_nonce($_POST['places_location_nonce'], plugin_basename(__FILE__))) return;

    // skip autosave calls
    // commenting this out still doesn't trigger saving these fields on autosave
    //if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    // update our custom post meta
    update_post_meta($id, 'places_lat', (float)$_POST['places_lat']);
    update_post_meta($id, 'places_lng', (float)$_POST['places_lng']);
}
custom-post-typespost-metasave-post
  • 6 6 ответов
  • 18 просмотров
  • 0 Followers
  • 0
Ответить
Share
  • Facebook

    6 ответов

    • Лучшие оценки
    • Старые
    • Недавние
    • Случайные
    1. bainternet Гуру
      2022-03-20T17:06:07+03:00Добавлен ответ 20 марта, 2022 в 5:06 пп

      покажи нам свой код метабокса

      • 0
      • Reply
      • kevin Учитель
        2022-03-20T17:06:49+03:00Replied to ответ 20 марта, 2022 в 5:06 пп

        Не думал, что это так уж необходимо, так как код невероятно прост, но я все равно добавил его. Сохранение черновиков и обновление опубликованных сообщений работает нормально, но изменения в настраиваемых полях не вызывают ни диалоговое окно «несохраненные изменения», ни автосохранение.

        • 0
        • Reply
      • kevin Учитель
        2022-03-20T17:08:21+03:00Replied to ответ 20 марта, 2022 в 5:08 пп

        Есть идеи, почему автосохранение не обновляет мою пользовательскую мета-публикацию?

        • 0
        • Reply
      • janfabry Гуру
        2022-03-20T17:09:10+03:00Replied to ответ 20 марта, 2022 в 5:09 пп

        @Kevin: Если вы прочитаете autosave функцию в этом файле Javascript, вы заметите, что она никогда не смотрит на метаполя. Таким образом, вам также придется дублировать эту функцию и добавлять данные метаполя самостоятельно. По этой причине все эти save_post обработчики метаданных возвращаются раньше, если они DOING_AUTOSAVE установлены.

        • 0
        • Reply
    2. Лучший ответ
      janfabry Гуру
      2022-03-20T17:07:28+03:00Добавлен ответ 20 марта, 2022 в 5:07 пп

      Код действительно смотрит только на редактор TinyMCE или поле заголовка и содержимого, если редактор скрыт:

      window.onbeforeunload = function(){
          var mce = typeof(tinyMCE) != 'undefined' ? tinyMCE.activeEditor : false, title, content;
      
          if ( mce && !mce.isHidden() ) {
              if ( mce.isDirty() )
                  return autosaveL10n.saveAlert;
          } else {
              title = $('#post #title').val(), content = $('#post #content').val();
              if ( ( title || content ) && title + content != autosaveLast )
                  return autosaveL10n.saveAlert;
          }
      };
      

      Вы можете заменить этот onbeforeunload обработчик своим собственным (конечно, не забудьте включить существующую функциональность). Или поиграть с isDirty() состоянием редактора TinyMCE и этим autosaveLast значением?

      • 0
      • Reply
    3. alexandrebourlier Новичок
      2022-03-20T17:10:01+03:00Добавлен ответ 20 марта, 2022 в 5:10 пп

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

      Я не занимался «АВТОСОХРАНЕНИЕМ» (пока). Я надеюсь, что кто-то найдет это полезным.

      • 0
      • Reply

    Оставить ответ
    Отменить ответ

    You must login to add an answer.

    Forgot Password?

    Need An Account, Sign Up Here

    Sidebar

    Ask A Question

    Stats

    • Questions : 7k
    • Answers : 38k
    • Best Answers : 4k
    • Users : 5k
    • Popular
    • Answers
    • netconstructorcom

      Лучшая подборка кода для вашего файла functions.php [закрыто]

      • 97 Answers
    • MikeSchinkel

      Объективные рекомендации по разработке плагинов? [закрыто]

      • 83 Answers
    • EAMann

      Как легко перенести установку WordPress из стадии разработки в рабочую ...

      • 60 Answers
    • EarleSemia
      EarleSemia added an answer [url=http://images.google.com.uy/url?q=https://big2dickporn.club/2022/06/21/ШЈШ±ШЁШ№Ш©-Ш±ЩЃШ§Щ‚-ЩЉЩ…Ш§Ш±Ші-Ш§Щ„Ш¬Щ†Ші-Щ…Ш№-ШІЩ€Ш¬ШЄЩЉ.html]ШЈШ±ШЁШ№Ш©-Ш±ЩЃШ§Щ‚-ЩЉЩ…Ш§Ш±Ші-Ш§Щ„Ш¬Щ†Ші-Щ…Ш№-ШІЩ€Ш¬ШЄЩЉ[/url] 6 июля, 2022 at 9:18 дп
    • Karenfreva
      Karenfreva added an answer [url=https://sildenafilviashop.com/]viagra over the counter[/url] cialis vs viagra [url=https://tblsviagra.com/]cheap viagra online[/url]… 27 июня, 2022 at 11:19 дп
    • Karenfreva
      Karenfreva added an answer [url=https://casinoboba.com/]lucky creek[/url] uptown ace casino [url=https://casinowingames.com/]sloto cash casino[/url] andromeda [url=https://realmonetcasino.com/]ignition[/url]… 25 июня, 2022 at 12:21 пп

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

    • nmystic

      Как назначить файл по умолчанию в «Внешний вид > Редактор»?

      • 0 Answers
    • billeisenhauer

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

      • 0 Answers
    • atticus

      Создание пользовательских запросов AJAX

      • 1 Answer

    Лучшие участники

    rarst

    rarst

    • 0 Questions
    • 5k Points
    Гуру
    bainternet

    bainternet

    • 0 Questions
    • 5k Points
    Гуру
    janfabry

    janfabry

    • 0 Questions
    • 3k Points
    Гуру

    Trending Tags

    categories comments custom-field custom-post-types custom-taxonomy customization functions images menus multisite pages permalinks php plugin-development plugin-recommendation plugins posts theme-development themes widgets wp-admin

    Footer

    © 2022

    Вставить/изменить ссылку

    Введите адрес назначения (URL)

    Или сделайте ссылку на существующий материал

      Поисковый запрос не задан. Показаны недавние элементы. Воспользуйтесь поиском или клавишами вверх/вниз, чтобы выбрать элемент.