在 Typecho 中使用 Joe 编辑器时,实现通过输入“#标签”自动填充标签功能,可以通过以下几种方法实现:
方法一:使用 AutoTags 插件
AutoTags 是一款专为 Typecho 设计的开源插件,能够自动提取文章中的关键词并生成标签。虽然它不是直接通过“#标签”来实现自动填充,但它可以根据文章内容智能生成相关标签,非常实用。
安装步骤:
1. 克隆仓库:通过 Git 将 AutoTags 项目下载到你的 Typecho 插件目录下:
git clone https://github.com/DT27/AutoTags.git
2. 启用插件:登录你的 Typecho 管理后台,进入“控制台”->“插件”,找到名为“AutoTags”的插件并点击启用。
3. 配置插件(可选):进入插件设置页面调整默认生成标签的数量等选项。
方法二:使用 TagSelector 插件
TagSelector 是一款增强后台标签功能的插件,支持标签展示和选择。虽然它不能直接实现通过“#标签”自动填充,但它可以让你在后台编辑文章时更方便地选择已有的标签。
安装步骤:
- 下载插件:从 Typecho 插件库下载 TagSelector 插件。
- 上传插件:将下载的插件文件夹
TagSelector
上传到 Typecho 的插件目录(usr/plugins/
)。 - 启用插件:在 Typecho 后台插件管理页面启用
TagSelector
插件。
方法三:自定义代码实现
如果你希望直接通过输入“#标签”来实现自动填充,可以通过自定义代码的方式实现。以下是一个简单的实现方法:
实现步骤:
1. 编辑主题文件:在你的主题文件夹中找到 functions.php
文件,如果没有则创建一个。
2. 添加代码:在 functions.php
文件中添加以下代码:
function autoTags($content)
{
preg_match_all('/#(\w+)/', $content, $matches);
$tags = array_unique($matches[1]);
return implode(',', $tags);
}
3. 修改文章发布逻辑:在 admin/write-post.php
文件中找到标签输入框的代码:
<p><input id="tags" name="tags" type="text" value="<?php $post->tags(',', false); ?>" class="w-100 text" /></p>
在其下方添加以下代码:
<script>
document.getElementById('text').addEventListener('input', function() {
var content = this.value;
var xhr = new XMLHttpRequest();
xhr.open('POST', '<?php echo Typecho_Common::url('action/write-post.php', Typecho_Common::getOptions()->index); ?>', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('do=autoTags&content=' + encodeURIComponent(content));
xhr.onload = function() {
if (xhr.status === 200) {
document.getElementById('tags').value = xhr.responseText;
}
};
});
</script>
4. 处理自动标签逻辑:在 admin/write-post.php
文件中找到 do=autoTags
的处理逻辑,添加以下代码:
if (isset($_POST['do']) && $_POST['do'] == 'autoTags') {
header('Content-Type: text/plain');
echo autoTags($_POST['content']);
exit;
}
博客:6v6.ren
通过以上方法,你可以实现通过输入“#标签”自动填充标签的功能,提升你的写作体验。