插件开发 - 作为更新的一部分修改了简码属性名称
Plugin development - Revised shortcode attribute name as part of update
在我编写和支持的一个插件中,我修改了一个插件可以识别的简码属性,改成了一个对用户更有意义的名称。
我想更新每个 post 使用该属性的地方。我猜 运行 代码更新用户的页面和 post 是不明智的,方法是遍历每个页面,找到的地方,将属性从旧的更改为新的。这对我来说似乎很危险。
我知道我有一个选择是添加过滤器 do_shortcode_tag
,这样每次调用短代码时,我都可以将旧属性与修改后的属性一样对待。我知道这是一个很小的开销,但从字面上讲它只是一个补丁。
我想我不能是唯一一个面临这种事情的人。理想情况下,我能够 运行 一个动作,或者核心可用的东西来更新相关的 post。有人知道解决方案吗?
可能是这样的:
add_shortcode('sample_shortcode', 'render_sample_shortcode');
function render_sample_shortcode($attrs)
{
$attribute = isset($attrs["newattr"]) && !empty($attrs["newattr"]) ? $attrs["newattr"] : $attrs["oldattr"];
return "Iam reading this attribute value: " . $attribute;
}
您的简码:[sample_shortcode newattr="I am new" oldattr="I am old"]
或在 PHP 文件中:echo do_shortcode('[sample_shortcode newattr="I am new" oldattr="I am old"]');
在我编写和支持的一个插件中,我修改了一个插件可以识别的简码属性,改成了一个对用户更有意义的名称。
我想更新每个 post 使用该属性的地方。我猜 运行 代码更新用户的页面和 post 是不明智的,方法是遍历每个页面,找到的地方,将属性从旧的更改为新的。这对我来说似乎很危险。
我知道我有一个选择是添加过滤器 do_shortcode_tag
,这样每次调用短代码时,我都可以将旧属性与修改后的属性一样对待。我知道这是一个很小的开销,但从字面上讲它只是一个补丁。
我想我不能是唯一一个面临这种事情的人。理想情况下,我能够 运行 一个动作,或者核心可用的东西来更新相关的 post。有人知道解决方案吗?
可能是这样的:
add_shortcode('sample_shortcode', 'render_sample_shortcode');
function render_sample_shortcode($attrs)
{
$attribute = isset($attrs["newattr"]) && !empty($attrs["newattr"]) ? $attrs["newattr"] : $attrs["oldattr"];
return "Iam reading this attribute value: " . $attribute;
}
您的简码:[sample_shortcode newattr="I am new" oldattr="I am old"]
或在 PHP 文件中:echo do_shortcode('[sample_shortcode newattr="I am new" oldattr="I am old"]');