「Generate automatic URL alias」がオフになっているプログラムで生成されたノードがたくさんあるので、pathautoモジュールのBulk Updateを使用できません。
これらのノードのpathautoエイリアスを一括生成するにはどうすればよいですか?
編集:私はDrupal 7を使用します
Views Bulk Operation を使用してみましたか?必要なことは、基準を満たすすべてのノードを一覧表示するビューを作成し、「URLエイリアスの生成」アクションを割り当てることです(私はまだ試していません)。
VBOには、「自動URLエイリアスの生成」のステータスを変更するオプションがありません
次のmysqlクエリを実行できます。
UPDATE `pathauto_state` SET `pathauto`=1 WHERE `entity_type` = 'node'
または、正確なコンテンツタイプのみを更新する場合:
UPDATE `pathauto_state` p, `node` n SET `pathauto` = 1 WHERE
p.entity_id = n.nid and n.type = 'mycustontype'
ここで、 'mycustomtype'はコンテンツタイプのマシン名です。
または、Drushがインストールされている場合:
drush sqlq "UPDATE pathauto_state SET pathauto=1 WHERE entity_type = 'node'"
その後、通常の場合と同じように新しいパスを一括生成できます:admin/config/search/path/update_bulk
Rick Bの回答に加えて、チェックされたことのないノードのエントリも作成する必要があります。これは、次のクエリを実行して実行できます。
INSERT INTO pathauto_state
SELECT 'node',n.nid ,1
FROM node n
WHERE n.type = 'api'
AND n.nid NOT IN (SELECT entity_id FROM pathauto_state)
rickが説明したように、データベースで直接Drush onを使用して実行できます。
分類用語については、用語の語彙ID(3
以下の例では)、同様の挿入を行います。
INSERT INTO pathauto_state
SELECT 'taxonomy_term', t.tid, 1
FROM taxonomy_term_data t
WHERE t.vid = 3
AND t.tid NOT IN (SELECT entity_id FROM pathauto_state)
これが Views Bulk Operations(VBO) で動作することを確認できます。
Gokul N K で言及したことを試してみたところ、同じ問題が発生し、実際のモジュールバージョンでも動作することを確認できました。
[自動URLエイリアスを生成する]がオフになっている既存の分類用語があり、それらをまとめて更新したいと考えていました。
以下の私の設定:Drupal 7(7.34)with Views(7.x-3.8)、Pathauto(7.x-1.2)&VBO(7.x-3.2)。私はモジュールを想定しています現在/インストール済みの構成済み。
以前に作成したノードのエイリアスを削除してから、新しいエイリアスを割り当てる必要があります。 これ 投稿ではその方法を説明しています。
これはDrupal 8とVBO(少なくともそれは私にとってはうまくいった)で実行できると思います-"フィールド値の変更"アクションを使用-"自動URLエイリアスの生成 "はfieldであり、コンテンツのアイテムごとに自動的に提供されます。警告は、各content typeに対して行う必要があることです。 、しかしこれはすべて次のように同じフォームで行うことができます:-
後で確認メッセージは表示されませんでした(これは当惑します-おそらく優れたVBOモジュールのバグです)が、(おそらくバックグラウンドのバッチジョブで)うまくいきました。
Module/theme/etcで使用するためにこれをphp形式にする必要のある人のために:
<?php
$update_auto_aliases = db_update('pathauto_state')
->fields(array(
'pathauto' => 1,
))
->condition('entity_type', 'node', '=')
->execute();
?>