针对在widgets.php页面上的WP指针可拖动的小工具的提示

时间:2014-03-02 作者:Ian

我正在更新我编写的名为Feature Me的小部件插件,并为第一次安装插件的用户添加WordPress指针,以帮助他们在安装插件后找到小部件。然而,我遇到了一个问题。

指针必须有一个目标,该目标是一个ID# 或者一个班级. (正常情况下可以)。但是在widget页面上,所有widget都以widget-[somenumber].

Screen of prepended widget number with the message I'd like to display

如果我知道[某个数字]是什么,我可以毫无问题地瞄准它,但99%的时候,我不知道数字是什么,因为它实际上取决于插件的安装顺序。

在其他网站上,这是小部件的ID:

Screen of prepended widget number from a different website

希望你能看到我的问题。

在上下文中,我使用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”作为目标,并在其插件中取得成功?欢迎提供任何建议/建议。

1 个回复
最合适的回答,由SO网友:birgire 整理而成

由于可用窗口小部件列表中的“功能我”窗口小部件被包装成如下内容:

<div id="widget-5_feature_me-__i__">...</div>
然后我想知道以下方法是否有效(未经测试):

 \'target\' => "div[id$=\'_feature_me-__i__\']",
以全部为目标div id为的元素结束于_feature_me-__i__.

我认为如果这样做有效的话,最多只能有一场比赛。

结束

相关推荐

Prevent widgets removal

我正在用许多小部件构建一个网站。它们是高度定制的。当站点处于活动状态时,几个管理员/编辑器必须编辑这些小部件。现在,我很害怕看到一个小部件(及其配置)可以在一次鼠标移动中完全擦除(将其从侧栏中删除)。有没有什么方法可以防止小部件被删除,同时保持编辑其内容的能力?此外,在我看来,管理中的widget管理页面为“添加widget”模块提供了太多的空间,而为“激活的widget”模块提供的空间不足。这在创建站点时很有用,但在完成站点时却毫无用处。有没有办法切换这些模块的大小?非常感谢