Jika itu adalah Halaman normal, Anda harus mendapatkan NID di arg(1)dalamnya akan menjadi simpul / X untuk semua halaman. dan node_load()hanya bekerja pada NID
GoodSp33d
url saya adalah projects / {username} / {node title}, itulah mengapa saya menggunakan arg (2)
helxsz
dalam drupal 7 Anda tidak dapat menggunakan node_load () untuk mendapatkan node dengan judulnya, hanya dengan nid
node_load () selalu mengembalikan satu node. Itu karena fungsi tidak mengulangi sumber daya hasil query database yang dikembalikan dari db_query () .
if($revision){
array_unshift($arguments, $revision);
$node = db_fetch_object(db_query('SELECT '. $fields .' FROM {node} n INNER JOIN {users} u ON u.uid = n.uid INNER JOIN {node_revisions} r ON r.nid = n.nid AND r.vid = %d WHERE '. $cond, $arguments));}else{
$node = db_fetch_object(db_query('SELECT '. $fields .' FROM {node} n INNER JOIN {users} u ON u.uid = n.uid INNER JOIN {node_revisions} r ON r.vid = n.vid WHERE '. $cond, $arguments));}
@sokratis Ingatlah bahwa judul tidak harus unik dan dapat diubah kapan saja. Jika Anda dapat beralih ke referensi dengan id node, itu akan lebih aman.
David L
4
Drupal bukan penggemar CamelCase.
Sivaji
1
Contoh ini juga tidak akan berfungsi di D7. node_load(). Telah mengedit tag pertanyaan untuk mencerminkan ini.
Chapabu
3
Versi D7 (walaupun menggunakan $conditionsparameter yang tidak digunakan lagi ):$nodes = node_load_multiple(array(), array('title' => 'node title'));
Clive
47
Di Drupal 7, parameter untuk node_load()telah diubah. Untuk mendapatkan node yang cocok dengan beberapa kondisi, Anda harus menggunakan kelas EntityFieldQuery .
arg(1)
dalamnya akan menjadi simpul / X untuk semua halaman. dannode_load()
hanya bekerja pada NIDJawaban:
Di Drupal 6, Anda dapat menggunakan kode berikut.
Jika Anda tahu jenis node juga, maka Anda dapat menggunakan kode berikut.
node_load () selalu mengembalikan satu node. Itu karena fungsi tidak mengulangi sumber daya hasil query database yang dikembalikan dari db_query () .
sumber
node_load()
. Telah mengedit tag pertanyaan untuk mencerminkan ini.$conditions
parameter yang tidak digunakan lagi ):$nodes = node_load_multiple(array(), array('title' => 'node title'));
Di Drupal 7, parameter untuk
node_load()
telah diubah. Untuk mendapatkan node yang cocok dengan beberapa kondisi, Anda harus menggunakan kelas EntityFieldQuery .sumber
Drupal 7
Ini cara yang lebih sederhana (seperti yang disarankan oleh Clive dan di SO ):
dan jauh lebih mudah diingat daripada menggunakan kelas EntityFieldQuery .
Lihat juga: Secara pemrograman mendapatkan node dengan judul di Drupal 7 di SO
sumber
@todo Remove $conditions in Drupal 8.
Di Drupal 7, Anda dapat menggunakan kode yang mirip dengan yang berikut ini.
sumber
Di Drupal 8, jalankan ini:
$node
akan menjadi objek node sepenuhnya instantiated.sumber
Juga di Drupal 8
dan selanjutnya:
Jangan lupa Anda butuhkan
sumber