0

我正在编写一个插件来向博客的所有登录用户显示一些站点信息。

我发现的最简单的方法是将信息附加到管理栏。但是,我想显示更多信息,然后很容易适应。我想将数据放在一个覆盖的 html 框中,当用户将鼠标悬停(或单击)标题时会显示该框。

实际上,我想重新创建“你好”项目的效果。以下是我的插件中的虔诚代码。

$args = array(
    'id'    => 'counter',
    'title'  => $visitor_count . ' Unique visitors and ' . $page_views .' Page views',
    'href' => '#',
    'aria-haspopup' => 'true',
    'meta' => array( 'html' => '
    <!-- This should be a pop-up message not a fixed box -->
    <div style="width:300px;height:100px;background-color:white;box-shadow: 10px 10px 5px #888888;">
    here be html
    </div>

    ')
);
$wp_admin_bar->add_node( $args );

希望这对你们都有一些意义。

4

1 回答 1

0

好的破解它,但查看 WP 源代码。meta['onclick'] 被转义但允许使用 javascript,因此可用于调用显示/隐藏在 meta['html'] 中传递的 div 的函数。

即(是的,我知道它只是取消隐藏,但是应该很容易将一个函数添加到 meta['onclick'],它检查和隐藏或取消隐藏 div)

global $wpdb;
global $SH_SWS_data;
$page_views = $wpdb->get_var( "SELECT COUNT(*) FROM ".$SH_SWS_data->tableName);
$visitor_count = $wpdb->get_var( "SELECT COUNT(DISTINCT ip) FROM ".$SH_SWS_data->tableName);

$args = array(
    'id'    => 'counter',
    'title'  => $visitor_count . ' Unique visitors and ' . $page_views .' Page views',
    'href' => '#',
    'aria-haspopup' => 'true',
    'meta' => array( 'html' => '
    <div id="SH_SWS_message_box" style="visibility:hidden;" width="200px" height="100px" >

    <div id="SH_SWS_Chart">Hi all</div>

    </div>
    ', 
            'onclick' => 'document.getElementById("SH_SWS_message_box").style.visibility="visible";')
);
$wp_admin_bar->add_node( $args );
于 2013-07-19T14:36:00.023 回答