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 85773
Next
Answered
kaiser
  • 0
kaiserГуру
Asked: 21 марта, 20222022-03-21T10:46:03+03:00 2022-03-21T10:46:03+03:00In: Wordpress (Вопросы и ответы)

Форматы сообщений — как переключать метабоксы при смене формата?

  • 0

Проблема

Поняв, что форматы постов

довольно популярны, но
это лишь крайне грубая концепция, я вижу, что пользователи попадут в возможные ловушки.

Формат поста…

  • использует мета-поля сообщений, и пользователь не помнит точное имя мета-ключа.
  • берет ссылку/встраивает/любой объект из редактора сообщений, и пользователь вводит неправильные данные.

Оба являются примерами возможных ловушек, в которые может попасть пользователь.

Идея

Формат сообщения имеет настраиваемое мета-поле, которое позволяет вводить только ожидаемые данные.

Идея сама по себе не так уж и плоха, но все же остается проблема, связанная с тем, что пользователю придется

  • поместить данные в правильный метабокс
  • затем выберите соответствующий формат публикации.

Вопрос

Я ищу

  • решение, которое переключает (ajax) мета-поле (или только его содержимое) на основе выбора, который пользователь делает внутри мета-поля форматов сообщений.

ИЛИ…

  • использование вкладок ajax/jquery-ui внутри мета-поля для переключения содержимого мета-поля и сохранения соответствующего формата сообщения в «save_post»

Примечание.

Я не ищу точное содержимое метабокса. Больше всего мне интересно увидеть «окружение» на разных code примерах.

Спасибо!

ajaxmetaboxpost-formatspost-meta
  • 4 4 ответов
  • 13 просмотров
  • 0 Followers
  • 0
Ответить
Share
  • Facebook

    4 ответов

    • Лучшие оценки
    • Старые
    • Недавние
    • Случайные
    1. Лучший ответ
      drewgourley Мастер
      2022-03-21T10:46:38+03:00Добавлен ответ 21 марта, 2022 в 10:46 дп

      Я сделал что-то подобное однажды, но когда вы нажали на определенную категорию (по сути, ту же самую), это, конечно, не настоящее решение ajax, оно просто скрывает и показывает div с настройками, но это решение, которое работает. Вам определенно придется изменить это для своих нужд, но если вы разбираетесь в jQuery, я уверен, что вы сможете изменить это для своих нужд. Если вы немного более конкретно о своих потребностях, я был бы рад отредактировать это, чтобы более точно соответствовать тому, что вы ищете.

      Код:

      Я использовал это в плагине, но вы можете просто поместить это в functions.php вашей темы.

      function customadmin_testimonial() {
          if ( is_admin() ) {
              $script = <<< EOF
      <script type='text/javascript'>
          jQuery(document).ready(function($) {
              $('#testimonial-information').hide();
              $('#in-category-3').is(':checked') ? $("#testimonial-information").show() : $("#testimonial-information").hide();
              $('#in-category-3').click(function() {
                  $("#testimonial-information").toggle(this.checked);
              });
          });
      </script>
      EOF;
              echo $script;
          }
      }
      add_action('admin_footer', 'customadmin_testimonial');
      

      По сути, у вас есть скрипт jQuery, который изначально скрывает мета-поле, которое я уже настроил. Идентификатор коробки: #testimonial-information. Затем он проверяет, установлен ли флажок для конкретной категории, и если да, то показывает его. Затем он прослушивает щелчок в поле определенной категории и переключает его видимость.

      Результат:

      Метабокс, который виден только тогда, когда пользователь выбрал определенную категорию. Все, что вам нужно сделать, это настроить метабоксы и получить все идентификаторы нужных вам элементов. Вам понадобятся идентификаторы метабоксов, а также соответствующих флажков. Тогда все, что вам нужно сделать, это следовать этой формуле, чтобы получить то, что вы ищете.

      Если у вас все настроено, но вы не можете написать javascript, просто предоставьте мне идентификаторы метабоксов и соответствующих флажков, и я буду более чем счастлив написать это для вас.

      • 0
      • Reply
      • kaiser Гуру
        2022-03-21T10:47:33+03:00Replied to ответ 21 марта, 2022 в 10:47 дп

        +1 и отмечен как решение. Вы можете увидеть окончательное и рабочее решение выше.

        • 0
        • Reply
      • drewgourley Мастер
        2022-03-21T10:48:43+03:00Replied to ответ 21 марта, 2022 в 10:48 дп

        Потрясающий! Рад видеть, что все заработало.

        • 0
        • Reply
    2. kaiser Гуру
      2022-03-21T10:48:06+03:00Добавлен ответ 21 марта, 2022 в 10:48 дп

      Это последняя функция javascript. Она должна быть зацеплена за admin_footer крючок.

      /**
       * jQuery show/hide for meta box, post editor meta box
       * 
       * Hides/Shows boxes on demand - depending on your selection inside the post formats meta box
       */
      function wpse14707_scripts()
      {
          wp_enqueue_script( 'jquery' );
      
          $script = '<<< EOF
          <script type="text/javascript">
              jQuery( document ).ready( function($)
                  {
                      $( "#post_format_box" ).addClass( "hidden" );
      
                      $( "input#post-format-0" ).change( function() {
                          $( "#postdivrich" ).removeClass( "hidden" );
                          $( "#post_format_box" ).addClass( "hidden" );
                      } );
      
                      $( "input:not(#post-format-0)" ).change( function() {
                          $( "#postdivrich" ).addClass( "hidden" );
                          $( "#post_format_box" ).removeClass( "hidden" );
                      } );
      
                      $( "input[name="post_format"]" ).click( function() {
                          var mydiv = $(this).attr( "id" ).replace( "post-format-", "" );
                          $( "#post_format_box div.inside div" ).addClass("hidden");
                          $( "#post_format_box div.inside div#"+mydiv).removeClass( "hidden" );
                      } );
                  }
              );
          </script>
          EOF';
      
          return print $script;
      }
      add_action( 'admin_footer', 'wpse14707_scripts' );
      
      • 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
    • 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 пп
    • bainternet
      bainternet added an answer попробуй это://first get all agents $agents = new WP_Query(array('post_type' =>… 27 марта, 2022 at 6:12 пп

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

    • nmystic

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

      • 0 Answers
    • billeisenhauer

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

      • 0 Answers
    • atticus

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

      • 0 Answers

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

    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)

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

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