我的Wordpress插件在古腾堡上不显示按钮

问题描述 投票:0回答:1

我创建了以下插件来完成此操作:“创建执行以下操作的 WordPress 插件:

在侧栏中有一个在古腾堡编辑器中显示帖子的按钮,通常称为“文档侧栏”或“设置侧栏”。该按钮将显示“生成标题” 当按下生成标题按钮时,它将获取帖子正文的内容,然后仅获取前 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,并且浏览器控制台上没有错误。不是缓存的东西。

wordpress plugins wordpress-gutenberg
1个回答
0
投票

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

function render_generate_title_button() {
    return "<button onclick=\"generateTitle()\">Generate Title</button>";
}
© www.soinside.com 2019 - 2024. All rights reserved.