我正在更新我编写的名为Feature Me的小部件插件,并为第一次安装插件的用户添加WordPress指针,以帮助他们在安装插件后找到小部件。然而,我遇到了一个问题。
指针必须有一个目标,该目标是一个ID#
或者一个班级.
(正常情况下可以)。但是在widget页面上,所有widget都以widget-[somenumber]
.
如果我知道[某个数字]是什么,我可以毫无问题地瞄准它,但99%的时候,我不知道数字是什么,因为它实际上取决于插件的安装顺序。
在其他网站上,这是小部件的ID:
希望你能看到我的问题。
在上下文中,我使用this method 显示来自TutsPlus的指针。此处显示上述消息的具体功能:
function fm_message_widget_location( $p ) {
$p[\'fm_message_widget_location\'] = array(
\'target\' => \'#widget-7_feature_me-__i__\',
\'options\' => array(
\'content\' => sprintf( \'<h3> %s </h3> <p> %s </p>\',
__( \'Feature Me - Getting Started\' ,\'plugindomain\'),
__( \'Looking for Feature Me? It\\\'s right here! Drag the widget to create your first call to action!\',
\'plugindomain\')
),
\'position\' => array( \'edge\' => \'left\', \'align\' => \'middle\' )
)
);
return $p;
}
add_filter( \'fm_admin_pointers-widgets\', \'fm_message_widget_location\' );
如果我的小部件始终处于第7位,这将很好,但不会。
我试图为目标传递regex,但这不起作用,我假设是因为javascript代码将其视为字符串。
ie。\'target\' => \'#widget-[0-9*]_feature_me-__i__\'
或\'target\' => \'RegExp("#widget-[0-9*]_feature_me-__i__")\'
那么,考虑到所有这些,有没有人成功地将这些小部件“dragables”作为目标,并在其插件中取得成功?欢迎提供任何建议/建议。
最合适的回答,由SO网友:birgire 整理而成
由于可用窗口小部件列表中的“功能我”窗口小部件被包装成如下内容:
<div id="widget-5_feature_me-__i__">...</div>
然后我想知道以下方法是否有效(未经测试):
\'target\' => "div[id$=\'_feature_me-__i__\']",
以全部为目标
div
id为的元素结束于
_feature_me-__i__
.
我认为如果这样做有效的话,最多只能有一场比赛。