web-dev-qa-db-ja.com

ダッシュボードウィジェットにjqueryライブラリを読み込むにはどうすればよいですか?

Wp_enqueue_script( 'jquery')を使用して組み込みWP jqueryライブラリをロードしようとしていますが、これを実行してもjquery関数が機能しません。スクリプトへの参照をハードコードしたときにだけ、関数は機能します。

動作する例...(これはダッシュボードウィジェットを追加している私のfunctions.phpファイルの中です)...

/* Dashboard Widget */
if(is_admin())
{
function my_dashboard_widget_function() 
{ 
    $rss = fetch_feed( "http://mysite/my.rss" );
    if ( is_wp_error($rss) ) 
    {
        if ( is_admin() || current_user_can('manage_options') ) 
        {
            echo '<p>';
            printf(__('<strong>RSS Error</strong>: %s'), $rss->get_error_message());
            echo '</p>';
        }
     return;
    }

    if ( !$rss->get_item_quantity() ) 
    {
        echo '<p>This feed is currently offline</p>';
        $rss->__destruct();
        unset($rss);
        return;
    }
echo "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>"

echo "<script type='text/javascript'>//some jquery methods here</script>";

うまくいかない例...

/* Dashboard Widget */
if(is_admin())
{
function my_dashboard_widget_function() 
{ 
    $rss = fetch_feed( "http://mysite/my.rss" );
    if ( is_wp_error($rss) ) 
    {
        if ( is_admin() || current_user_can('manage_options') ) 
        {
            echo '<p>';
            printf(__('<strong>RSS Error</strong>: %s'), $rss->get_error_message());
            echo '</p>';
        }
     return;
    }

    if ( !$rss->get_item_quantity() ) 
    {
        echo '<p>This feed is currently offline</p>';
        $rss->__destruct();
        unset($rss);
        return;
    }
wp_enqueue_script('jquery');
echo "<script type='text/javascript'>//some jquery methods here</script>";
1
Scott B

特定の時点でスクリプトをエンキューする必要があります。ダッシュボードウィジェット関数内にwp_enqueue_script呼び出しを配置するだけでなく、別の関数に配置して適切なアクションにフックする必要があります。

そう:

function add_jquery_to_my_widget() {
    wp_enqueue_script( 'jquery' );
}
add_action( 'init', 'add_jquery_to_my_widget' );
1
EAMann