Yanıtlar:
EntityFieldQuery
Düğümlerin bir listesini almak için kullanabilirsiniz , ardından düğümün alanlarını aşağıdakilerle güncelleyin node_save()
:
$lang = LANGUAGE_NONE; // Replace with ISO639-2 code if localizing
$node_type = 'page'; // Machine name of the content type
$query = new EntityFieldQuery;
$result = $query
->entityCondition('entity_type', 'node')
->propertyCondition('type', $node_type)
->execute();
if (!empty($result['node'])) {
$nodes = entity_load('node', array_keys($result['node']));
foreach($nodes as $node) {
// Replace field_foo with the machine name of the field to update.
// - 0 refers to specific value within the field array, for when the field contains
// multiple values. If the field only has one value, it should be 0.
$node->field_foo[$lang][0]['value'] = 'New Value';
node_save($node);
}
}
Bu bir kereye mahsus bir işlemse , yukarıdakileri çalıştırmak için Devel modülünün PHP Yürüt işlevini kullanabilirsiniz: aksi takdirde, basit bir özel modül oluşturabilirsiniz.
Ben kullanacağı Görüntüleme Operasyon Bulk ve kullanımı yukarıda esasen öğeleri yapmak için "Keyfi PHP Denetimi yürütme", ancak herkesin (gibi istediğini yapar fazladan kod, sadece küçük parçacığını yapmak gerekmez $object->field_foo['und'][0]['value'] = 'some_value'
)
Alanı sadece bir değere sahip olarak güncellemek istiyorsanız, kabul edilen cevaba daha iyi bir alternatif budur:
$lang = LANGUAGE_NONE; // Replace with ISO639-2 code if localizing
$node_type = 'page'; // Machine name of the content type
$query = new EntityFieldQuery;
$result = $query
->entityCondition('entity_type', 'node')
->propertyCondition('type', $node_type)
->execute();
if (!empty($result['node'])) {
$nodes = entity_load('node', array_keys($result['node']));
foreach($nodes as $node) {
// Replace field_foo with the machine name of the field to update.
// - 0 refers to specific within the field array, for when the field contains
// multiple values. If the field only has one value, it should be 0.
$node->field_foo[$lang][0]['value'] = 'New Value';
field_attach_presave('node', $node);
field_attach_update('node', $node);
}
}
Aradaki fark doğrudan kullanımda field_attach_presave
ve field_attach_update
sadece düğüm alanını doğru şekilde güncelleyen ve düğüm kaydetme işleminin geri kalanını atlayan fonksiyonlar. Bunun hiçbir düğüm ön-kaydet / kaydet kancası çağrılmayacağı, "değiştirildiği" tarihin o tarihe kadar güncellenmeyeceği vs. gibi bir etkisi vardır.
Görünümler Toplu İşlemleri modülünü kurun ve etkinleştirin ve sayfa ekranlı bir görünüm oluşturun.
Ekle => Toplu işlemler: Görünümdeki İçerik (İçerik) alanı.
başvurmak
Varsayılan değeri ayarlamak istediğiniz alanları seçin.
Senin durumunda unvanı. Resimde bu etiketler.
Görünümü kaydedin ve oluşturduğu sayfaya gidin. Birden fazla sonuç sayfanız varsa, geçerli sayfadaki tüm öğeleri, tüm sayfalardaki tüm öğeleri seçebilir veya tek tek düğümlere karşılık gelen kutuları manuel olarak işaretleyebilirsiniz. Devam etmek için en az bir onay kutusu işaretlenmelidir.
Şimdi varsayılan değeri ayarlayın ve kaydedin.