ダッシュボードウィジェットのドラッグアンドドロップ機能を無効にする必要があります。
これはdashboard_browser_nagの場合と同じように、jqueryを使って実現する必要があります。私はjqueryの専門家ではありません - それでは、誰かがjqueryを使って自分のウィジェットを見つけて変更する方法を教えてもらえますか?
これまでのところ、私はいくつかの.sortable( "cancel")をしなければならないことを知っています、しかしどれほど正確に?
ありがとうございます。
これは各ウィジェットからドラッグ可能な機能を削除します。
jQuery('.widget.ui-draggable').draggable('destroy')
wp_enqueue_script()
を通して、あるいはウィジェットページにインラインでエコーすることにより、あなたのコードにこれを挿入するための良い方法を見つけました。
特定のウィジェットをターゲットにするには、次のようにして何かをする必要があります。
jQuery('.widget.ui-draggable').each(function() {
if (jQuery(this).find('h4').text() == 'Archives')
jQuery(this).draggable('destroy');
}
またはid
でウィジェットを見つけるためのあなたの方法を選択してください。
widget-2_calendar-__i__
widget-3_categories-__i__
...
あなたがソースの周りを閲覧するならば、あなたはすぐにこれらがWordPressによって内部的に形成される方法を見つけるでしょう。あとはjQuery、セレクタ、あるいは正規表現にかかっています(ただし、この場合はお勧めしません)。
テストされていませんが、これは少なくともあなたが始められるようになるでしょう。これをfunctions.phpに追加するか、または独自のプラグインを作成してください。
function remove_drag_and_drop() {
wp_dequeue_script( 'jquery-ui-sortable' );
}
add_action('wp_dashboard_setup', 'remove_drag_and_drop' );
興味深いアプローチしかし、そのようには動作していません。私のこれまでの最善の方法は、anyのフッタースクリプトを追加しないようにすることです。
function remove_footer_scripts() { return false; }
add_filter('print_footer_scripts', 'remove_footer_scripts');
明らかに良い解決策ではありません。しかし、単一のスクリプトを削除するために提案されたwp_dequeue_script
関数は機能していません - おそらく 'wp_dashboard_setup'は間違ったフックですか?また、 'wp_default_scripts'にフックして$wp_scripts
自体を変更しようとしましたが、成功しませんでした...
@Ijaas:いい点、admin_widgetsとadmin_galleryも壊れるでしょうが、$current_screen
によってはaction/filterを追加することはできませんか? set_current_screen()
が呼び出された後に追加されるフッタースクリプトなので、そうするべきです。