Архив за месяц: Май 2022



WordPress: После обновления перестали отображаться кастомные кнопки в редакторе

Давным-давно я добавил в классический редактор кастомные кнопки. После обновления WordPress до версии 6.0, все они пропали из редактора Classic Editor.
Если посмотреть сообщения в консоли (клавиша F12 ), то увидим такую ошибку:

Uncaught ReferenceError: QTags is not defined

 

Метод с решением я нашёл в одном японском блоге.
Суть данного исправления в том, что перед вызовом метода QTags.addButton, нам нужно добавить такую функцию:

window.addEventListener()

Таким образом мой полный код сниппета из примера теперь будет такой (я специально не стал выравнивать строчки, чтобы было видно скобки):

// add more buttons to the html editor
function appthemes_add_quicktags() {
  if (wp_script_is('quicktags')){
?>
  <script type="text/javascript">
        window.addEventListener('load', function(){
  /* QTags.addButton( 'ID_', 'Button Title', 'Opening tag: <div class="info">', 'Closing tag: </div>'); */
  QTags.addButton( 'ID_Pre', 'pre', '<pre>', '</pre>');
  QTags.addButton( 'ID_Info', 'INFO', '<div class="info">', '</div><p>&nbsp;</p>');
  QTags.addButton( 'ID_Checked', 'CHECKED', '<div class="checked">', '</div><p>&nbsp;</p>');
  QTags.addButton( 'ID_Warning', 'WARNING', '<div class="warning">', '</div><p>&nbsp;</p>');
  QTags.addButton( 'ID_Error', 'ERROR', '<div class="error">', '</div><p>&nbsp;</p>');
  QTags.addButton( 'ID_Cmd', 'CMD', '<pre class="textbox">', '</pre>'); 
  QTags.addButton( 'ID_Marker', 'MARKER', '<span class="marker">', '</span>'); 
  QTags.addButton( 'ID_LBr', '[', '&#91;', ''); 
  QTags.addButton( 'ID_RBr', ']', '&#93;', ''); 
  QTags.addButton( 'ID_Menu', 'MENU', '<span class="menuitem">', '</span>'); 
  QTags.addButton( 'ID_PS', 'PS', '<pre class="psbox">', '</pre>'); 
  QTags.addButton( 'ID_PS_Warning', 'PS_Warning', '<pre class="psbox_warning">', '</pre>'); 
  QTags.addButton( 'ID_PS_Error', 'PS_Error', '<pre class="psbox_error">', '</pre>'); 
  QTags.addButton( 'ID_Key', 'KEY', '[key]', '[/key]'); 
  QTags.addButton( 'ID_LT', '<', '&lt;', ''); 
  QTags.addButton( 'ID_GT', '>', '&gt;', '');
  QTags.addButton( 'ID_quot', '&quot;', '&quot;', ''); 
  QTags.addButton( 'ID_Arrow', '&#9654;', '&#9654;', '');
            });
  </script>
<?php
  }
}
add_action( 'admin_print_footer_scripts', 'appthemes_add_quicktags' );