我的WordPress插件不显示在 gutenberg 按钮

wribegjk  于 9个月前  发布在  WordPress
关注(0)|答案(1)|浏览(164)

我创建了以下插件来实现这一点:“创建WordPress插件,做以下事情:
在 gutenberg 编辑器中有一个按钮,用于编辑一篇文章,在侧边栏中,通常被称为“文档侧边栏”或“设置侧边栏”。此按钮将显示“生成标题”当按下生成标题按钮时,它将获取文章正文的内容,然后仅获取前50个字符并将其设置为标题。请确保插件具有任何必要的配置,等,以便它可以安装和激活类似的方式,以其他WordPress插件”
我使用这个代码:

<?php
/**
 * Plugin Name:       Generate Title
 * Plugin URI:        https://github.com/546546
 * Description:       A WordPress plugin that generates the post title based on the first 50 characters of the post content.
 * Version:           1.0
 * Requires at least: 5.2
 * Requires PHP:      7.2
 * Author:            My Name
 * Author URI:        my website
 * License:           GPL v2 or later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 */

// Add custom JavaScript logic for the Generate Title button
// Add button to Gutenberg editor sidebar
function add_generate_title_button() {

  if ( ! function_exists( 'register_block_type' ) ) {
    // Gutenberg not active
    return;
  }

  register_block_type( 'generate-title/button', array(
    'render_callback' => 'render_generate_title_button' 
  ));

}
add_action( 'init', 'add_generate_title_button' );

// Render button HTML
function render_generate_title_button() {

  ?>
  <button onclick="generateTitle()">Generate Title</button>
  <?php

}

// JS to hook click and generate title
function add_generate_title_script() {
?>
  <script>
    function generateTitle() {
      const content = document.querySelector('.editor-post-text-editor__content');
      const title = document.querySelector('.editor-post-title__input');
      
      if (content.innerHTML && title) {
        title.value = content.innerHTML.substr(0,50);
      }
    }
  </script>
<?php
}
add_action( 'admin_footer', 'add_generate_title_script' );

?>

字符串
我是新的WordPress,这不显示任何按钮在我的 gutenberg ,我不知道为什么,我有WordPress的最后一个版本,我没有错误的浏览器控制台.不是一个缓存的事情.

sirbozc5

sirbozc51#

你的回调函数必须返回html,而不是显示它。试试这个:

function render_generate_title_button() {
    return "<button onclick=\"generateTitle()\">Generate Title</button>";
}

字符串

相关问题