matgargano / acf-medium-editor-field
WordPress 插件 `acf-medium-editor-field`
This package is auto-updated.
Last update: 2024-09-22 21:17:13 UTC
README
Medium Editor 需要您的帮助!此插件依赖于 Medium Editor,这是一个 JavaScript 包,为 ACF 插件提供动力。我不维护此包。此插件只是对 ACF 的简单实现。Medium Editor 正在寻找贡献者。[Medium Editor 正在寻找贡献者](https://github.com/yabwe/medium-editor/issues/1503)。如果没有人为其维护和改进,Medium Editor 可能会消失,如果发生这种情况,此插件将不再可行。
请勿从此处安装此插件。此处的插件与 wordpress.org 上的插件有不同的缩写。当此插件更新时,它将来自 wordpress,而不是此仓库。这将在更新时导致插件被禁用。
高级自定义字段:Medium Editor 字段
支持的 ACF 版本
- ACF 5
是否需要为客户提供一种编辑文本外观的方法,而不希望给他们一个完整的 WYSIWYG 编辑器?需要比 WYSIWYG 少但比文本或文本区域字段多,您可以按需要配置它,具有所需的特性?
== 安装 ==
- 将
acf-medium-editor-field
文件夹复制到您的wp-content/plugins
文件夹 - 通过插件管理页面激活 Medium Editor Field 插件
- 通过 ACF 创建新字段并选择 Medium Editor Field 类型
- 有关字段类型设置的信息,请参阅描述
## 可配置的 Medium Editor WYSIWYG 字段用于 ACF
此 ACF5 扩展程序将 MediumEditor 添加为 ACF 字段。每个字段实例都是可配置的,每个字段实例都有自己的设置。许多 MediumEditor 中的选项都受到支持,包括使用 MediumButton 创建自定义按钮。您还可以使用配置设置或过滤器来更改 MediumEditor 主题。以下是一些可用的选项。有关 MediumEditor 和 MediumButton 的更多信息,请参阅上述链接中这些库的描述。
请注意,此功能仅适用于 ACF5 版本。它不适用于 ACF4。如您在字段设置中所见,我已添加一个重复字段(以及此字段类型的设置中的嵌套重复字段)。它可能适用于 ACF4 和重复插件,但需要重写 JavaScript 以使其工作,如果您使用 ACF4 和重复插件,那么您可能需要升级到 ACF5。
我创建了此自定义字段,具有我为当前正在进行的某个项目所需的具体 MediumEditor 功能。最重要的功能是包含 MediumButton,这样我就可以创建自定义按钮,以便我能够完成管理员操作以满足客户修改文本颜色等特定文本部分的需求。我不反对添加更多 MediumEditor 的选项和功能,请在 issues 中给我留言,我会考虑。
实际上有几个ACF插件使用了MediumEditor,但我需要能够为每个实例配置不同的东西,并且我特别需要能够轻松添加自定义按钮。实现这个功能的最佳方式是使用MediumButton。我没有找到这样的插件,而且老实说,修改现有插件以允许我所需要的功能,实际上意味着完全重新构建它们。所以这就是我的解决方案。希望其他人也能觉得它有用。
字段设置
以下是对字段的解释,不包括那些应该不言自明的字段。
按钮:这些是包含在MediumEditor中的按钮。选择你想要包含在每个编辑器实例中的按钮。
自定义按钮:这是我创建此插件的主要原因。该字段支持使用MediumButton添加自定义按钮。请注意,如果主字段(名称、标签、HTML标签)中的任何一个为空,则整个按钮将被忽略。
名称:这是按钮的名称,将在创建MediumButton对象时使用。按钮名称必须是唯一的,并且不能是MediumEditor中已包含的按钮之一。我不知道自定义字符在名称中的效果。如果有任何错误,请报告,我将研究添加一些清理字符或为任何引起错误的情况找到其他解决方案的方法。
标签:这是将在按钮栏中显示的标签。该字段允许HTML。请确保它是有效的HTML(我不会验证您输入的HTML)。无效的标记可能会破坏按钮栏或整个管理员界面。MediumButton还支持使用图标作为按钮。如果您想在按钮中使用图标,那么确保图标字体集可在您站点的管理员中使用。
HTML标签:输入此按钮将插入的HTML标签。仅允许非空HTML标签。大多数有效的HTML标签都受到支持。如果输入了无效的HTML标签,则按钮将被忽略。
我目前不确定某些标签在编辑器中的效果。我还没有尝试所有这些标签,如果您遇到问题,请告诉我,我需要决定是尝试修复它还是从允许列表中删除这些标签。
当前支持的标签包括:abbr、acronym、address、article、aside、b、bdi、bdo、blockquote、button、caption、cite、code、del、details、dfn、div、em、footer、h1、h2、h3、h4、h5、h6、header、i、ins、main、mark、meta、p、pre、q、s、samp、section、small、span、strong、sub、sup、summary、time、u、var、wbr
属性:向HTML标签添加属性。属性名称必须是有效的(它们必须以字母开头,只包含字母、数字、下划线和破折号。属性值不得包含双引号(")。任何不符合这些规则的属性将被忽略。请注意,除此外,属性名称和值不进行验证。我不知道无效条目对您的管理员界面有何影响。与其他值一样,如果您发现导致问题的任何内容,请打开一个并我会看看需要做什么。
其他MediumEditor选项:这是MediumEditor可用的其他核心选项的选择,除了allowBreakInSingleLineInput(见下文)。请参阅MediumEditor文档了解每个其他选项的详细信息。选择一个选项将设置该选项的值为true。
allowBreakInSingleLineInput:这是一个专门为WP使用的选项。如果您设置了disableReturn,那么MediumEditor将像单行链接输入一样运行。设置allowBreakInSingleLineInput允许编辑器手动在单行字段中输入<br>标签。
MediumEditor主题
除非您更改它,否则MediumEditor字段将使用默认主题。您可以为所有MediumEditor字段更改使用的主题,这不是您可以仅应用于某些字段的事情。您可以通过以下两种方式之一更改您网站上的主题:
- wp-config.php 将以下代码添加到您的wp-cofig.php文件中
define('MEDIUM_EDITOR_THEME', 'beagle');
- filter 将以下代码添加到您的functions.php文件或您会添加此类过滤器的任何地方
add_filter('medium-editor-theme', 'my_medium_editor_theme_function');
function my_medium_editor_theme_function($theme) {
$theme = 'beagle';
return $theme;
}
上述代码中的主题名称是MediumEditor当前支持的以下主题之一:beagle、bootstrap、default、flat、mani、roman、tim
有关更多信息,请参阅MediumEditor和MediumButton
自定义编辑器样式
medium editor中用于元素的样式是从WP继承的。如果您想覆盖这些样式,请创建一个名为"medium-editor-syle.css"的文件,并将其放在您的主题文件夹中。如果此文件存在,它将在出现ACF字段的所有页面上自动排队。
过滤器
在代码中添加自定义按钮
此过滤器应用于在Medium Editor字段字段设置中创建自定义按钮时给出的所有正确要求之前验证的自定义按钮。
钩子
- acf/medium-editor-field/custom-buttons - 每个字段的过滤器
- acf/medium-editor-field/custom-buttons/name={$field_name} - 根据名称的特定字段的过滤器
- acf/medium-editor-field/custom-buttons/key={$field_key} - 根据键的特定字段的过滤器
参数
- $buttons - 按钮选项的数组
- $field - 包含正在加载的字段的全部字段设置的数组
// functions.php
function my_custom_buttons($buttons, $field) {
$buttons[] = array(
'name' => 'red',
'tag' => 'span',
'label' => '<b title="Title for button" style="color: #F00;"><i class="dashicons dashicons-NAME"></i></b>',
'attributes' => array(
array(
'name' => 'style',
'value' => 'color: #F00;'
),
array(
'name' => 'class',
'value' => 'myClass'
)
)
);
return $buttons;
}
add_filter('acf/medium-editor-field/custom-buttons', 'my_custom_buttons', 10, 2);
有关WordPress中所有可用的dashicons,请查看Dashicons列表,并获取正确的dashicons-NAME名称。
如果您使用自己的图标字体(例如Font-Awesome),则必须在您网站的admin页面上安装并包含图标字体集。
过滤按钮
此过滤器应用于将显示的按钮列表。此列表将包含每个标准按钮的"名称"以及为该字段设置的每个自定义按钮的"名称"。请注意,只能使用有效的按钮名称。请参阅medium editor提供的可用按钮列表。
钩子
- acf/medium-editor-field/buttons - 每个字段的过滤器
- acf/medium-editor-field/buttons/name={$field_name} - 根据名称的特定字段的过滤器
- acf/medium-editor-field/buttons/key={$field_key} - 根据键的特定字段的过滤器
参数
- $buttons - 按钮选项的数组
- $field - 包含正在加载的字段的全部字段设置的数组
// functions.php
function my_custom_buttons($buttons, $field) {
// add underline button to all medium editor fields
// set both the index and the value of the array element
if (!isset($buttons['underline'])) {
$buttons['underline'] = 'underline';
}
return $buttons;
}
add_filter('acf/medium-editor-field/buttons', 'my_buttons', 10, 2);
自动更新
Github Updater支持已被移除。此插件已发布到WordPress.org,请在此处https://wordpress.org/plugins/acf-medium-editor-field/。如果您遇到更新问题,请尝试从那里安装。
移除提示
您可能已经注意到,我开始在我的插件中添加一些小提醒。这只是某些页面上的一个框,列出了您正在使用的插件,并请求您考虑为使用它们而捐赠。如果您想禁用它们,请将以下过滤器添加到您的functions.php文件中。
add_filter('remove_hube2_nag', '__return_true');