Saya ingin memanggil fungsi menu_rebuild () , tetapi saya tidak yakin di mana tepatnya menempelkan potongan kode.
Saya tidak dapat menemukan file update.php di manapun dalam instance lokal saya.
Alasan saya ingin mencoba ini adalah karena saya menghapus semua node, tetapi mereka masih muncul di bawah struktur menu.
/var/www/htdocs/drupal
Dan memodifikasinya adalah ide yang buruk. Bisakah Anda menambahkan lebih detail mengapa Anda ingin memanggil menu_rebuild?Jawaban:
Buat file dengan konten berikut dan cukup masukkan direktori root Drupal. Katakan saja
menu-rebuild.php
. Jalankan http://example.com/menu-rebuild.phpsumber
Drupal 7
Jika Anda menggunakan drush, Anda dapat menjalankan:
Jika tidak berhasil, lihat: Bagaimana cara membangun kembali menu ketika mengalami kesalahan PHP Fatal?
Drupal 6
memcached
Jika Anda menggunakan memcached, Anda harus me-restart itu.
Di Linux:
/etc/init.d/memcached restart
Pada OS X (jika menggunakan Homebrew):
brew services restart memcached
sumber
Buka skema database, lalu hapus semua konten menu_links dan menu_router tabel dengan kueri SQL berikut:
Kemudian jalankan http://example.com/update.php . Ini akan memanggil menu_rebuild (), yang akan mengisi tabel ini dengan data 'segar'. Ini bekerja untuk saya setelah "Kesalahan PHP Fatal: Kehabisan memori" mengubah beberapa menu saya menjadi berantakan.
Tetapi perlu diketahui, bahwa itu akan menghapus semua menu kustom Anda yang harus Anda bangun kembali secara manual. Untuk menghindarinya Anda dapat bermain sedikit dengan menghapus beberapa catatan yang dipilih dari menu_router dan menu_links, tetapi bagi saya itu tidak berfungsi dengan baik.
Dan jangan lupa untuk mencadangkan database dan direktori situs Anda sebelum menghapus konten dari tabel.
sumber
Beberapa cara berbeda:
menu_rebuild()
dari hook_update_Ndrush cc menu
sumber
menu_cache_clear_all()
untuk membangun kembali cache menuPergi ke
admin/config/development/performance
dan mengklik tombol "Hapus semua cache" akan menyebabkan menu dibangun kembali, serta menghapus templat, blokir, halaman, dll. Cache.sumber
Cara alternatif adalah dengan mengatur variabel:
variable_set('menu_rebuild_needed', TRUE);
Ini akan memicu
menu_rebuild();
sumber
Untuk memperbaiki penggunaan menu admin dalam SQL dan perhatikan bahwa seperti yang dinyatakan Valk di atas, ia akan menghapus semua penyesuaian dari menu manajemen administrasi Anda. Setelah Anda menjalankannya, hapus cache Anda dan menu manajemen akan dibangun kembali ke pengaturan standarnya.
Ini query SQL:
sumber