我创建了以下插件来完成此操作:“创建执行以下操作的 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,并且浏览器控制台上没有错误。不是缓存的东西。
你的回调函数必须返回html,而不是显示它。试试这个:
function render_generate_title_button() {
return "<button onclick=\"generateTitle()\">Generate Title</button>";
}