从剪贴板粘贴图像时的自定义文件名

时间:2020-01-20 作者:RkdL

我使用了一个带有经典编辑器的插件,使我能够将图像直接从剪贴板粘贴到帖子中。但仅在文件名对seo不重要时使用此选项。

使用Gutenberg编辑器,这种“粘贴”是内置的,并且是一个方便的功能。然而,由于自动生成的文件名,将图像添加到帖子中并不是一种非常有利于Seo的方法。但它比保存、调整大小、重命名、上载和添加要快得多。尤其是当涉及大量图像时。

唯一能使此功能成为添加图像的必经之路的是文件名。用用户提供的名称替换此部分,将在命名和发布图像方面产生巨大的差异。

以下函数应在保存之前重命名正在粘贴的附件:

add_action(\'add_attachment\', \'rename_attachment\');
function rename_attachment($post_ID){
  $new_attachment_name = array(
    \'ID\' => $post_ID, 
    \'post_title\' => $post_ID, // changes what you see 
    \'post_name\' => $post_ID // changes the slug to 89
  );

  wp_update_post($new_attachment_name);
}
我想更换$post_ID 使用当前H2名称wp:heading 我正在粘贴在下,或者有一个输入框,可以在其中输入我想要给图像的文件名。

我怎样才能从这里做到这一点?是否可以在用户输入后挂接/添加\\u操作并继续?我在考虑php抛出一个简单的html表单并输入值。

<form name="form" action="" method="get">
  <input type="text" name="pastedimagename" id="subject" value="Cat-Food-image">
</form>

<?php echo $_GET[\'pastedimagename\']; ?>
这是否可以转化为一个工作环境,而不是编写插件。因为我还没有实现这一目标的技能。。

1 个回复
SO网友:Tim Elsass

您可以为编辑器创建一个插件来实现这一点。在JS中onpaste event. 以下是基本步骤:

收听onpaste将基于该信息创建的名称发送回服务器,并触发使用您编写的PHP代码重命名文件在古腾堡创建一个输入框会更深入一些,但自动命名似乎更适合您。