menu_rebuild() 関数を呼び出したいのですが、コードスニペットを正確にどこに貼り付けるかわかりません。
pdate.php ファイルがローカルインスタンスのどこにも見つかりません。
これを試してみたいのは、すべてのノードを削除しましたが、メニュー構造の下にまだ表示されているためです。
次の内容のファイルを作成し、Drupalルートディレクトリにドロップします。たとえば、menu-rebuild.php
。実行 http://example.com/menu-rebuild.php
<?php
error_reporting(E_ALL);
define('DRUPAL_ROOT', getcwd());
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
menu_rebuild();
Drupal 7
Drushを使用している場合は、次のコマンドを実行できます。
drush eval 'menu_rebuild();'
動作しない場合は、次を参照してください: PHP致命的なエラー?
Drupal 6
drush php-eval 'drupal_rebuild_theme_registry()'
memcached
Memcachedを使用している場合は、再起動する必要があります。
Linuxの場合:/etc/init.d/memcached restart
OS X(Homebrewを使用している場合):brew services restart memcached
データベーススキーマを開き、次のSQLクエリを使用して、menu_linksおよびmenu_routerテーブルのすべての内容を削除します。
DELETE FROM menu_links;
DELETE FROM menu_router;
次に http://example.com/update.php を実行します。これはmenu_rebuild()を呼び出し、これらのテーブルに「新しい」データを入力します。 「PHP Fatal Error:Out of memory」が私のメニューのいくつかを混乱させた後、それは私のために働きました。
ただし、手動で再構築する必要があるすべてのカスタムメニューが消去されることに注意してください。それを避けるために、menu_routerとmenu_linksから選択したレコードをいくつか削除して少し遊んでもよいですが、私にとってはうまくいきませんでした。
また、テーブルからコンテンツを削除する前に、データベースとサイトディレクトリをバックアップすることを忘れないでください。
いくつかの異なる方法:
menu_rebuild()
を呼び出しますdrush cc menu
別の方法は変数を設定することです:
variable_set('menu_rebuild_needed', TRUE);
これはmenu_rebuild();
をトリガーします
admin/config/development/performance
に移動し、[すべてのキャッシュをクリア]ボタンをクリックすると、メニューが再構築され、テンプレート、ブロック、ページなどのキャッシュがクリアされます。
SQLでの管理メニューの使用を修正するには、Valkが前述したように、管理管理メニューからすべてのカスタマイズを削除することに注意してください。実行後、キャッシュをクリアし、管理メニューをデフォルト設定に再構築します。
SQLクエリは次のとおりです。
DELETE FROM menu_links WHERE menu_name='management'