Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Cara Bekerja Dengan Metadata Pengguna WordPress

by
Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called How to Work with WordPress Metadata.
How to Work With WordPress Post Metadata
How to Work With WordPress Comment Metadata

Malay (Melayu) translation by Seurion (you can also view the original English article)

Dalam artikel sebelumnya, kami membincangkan bekerjasama dengan metadata pos di WordPress menggunakan API yang disediakan. Kami juga meliputi pelbagai alat, idea keselamatan, dan apa yang diperlukan untuk menubuhkan persekitaran di mana untuk bekerja dengan kod yang akan disediakan di sepanjang tutorial.

Jika anda belum membaca artikel itu, maka saya sangat mengesyorkan untuk meninjau bukan sahaja kerana ia meliputi cara kerja dengan metadata pos, tetapi juga kerana ia menyentuh beberapa topik penting yang berkaitan dengan sisa artikel dalam siri ini (dan ia merujuk kepada beberapa yang akan datang kemudian tahun ini).

Dengan mengandaikan bahawa anda semua terperangkap dan bersedia untuk mempelajari tentang satu lagi API metadata, maka mari kita mulakan dengan API Meta Pengguna WordPress.

Meta API Pengguna WordPress

Ingat dari sebelumnya dalam siri ini, WordPress mendefinisikan metadata dengan cara berikut:

Data meta dikendalikan dengan pasangan kunci/nilai. Kuncinya ialah nama unsur meta-data. Nilai adalah maklumat yang akan muncul dalam senarai meta-data pada setiap catatan individu yang berkaitan dengan maklumat tersebut.

Semasa kami terus bekerja dengan pelbagai API metadata, anda akan mendapati bahawa definisi ini berlaku sama ada API sedang diterokai.

Perkara yang menarik ialah apabila anda telah mendapat pengendalian untuk menangani satu API metadata, anda mempunyai idea umum tentang bagaimana setiap API berkaitan akan berfungsi. Pasti, mungkin terdapat nuansa di sana sini, tetapi fungsi umum akan sama.

Bekerja Dengan API Metadata Pengguna

Apabila melihat WordPress Post Meta API, kami menyemak dan menggunakan fungsi berikut:

  • add_post_meta
  • update_post_meta
  • get_post_meta
  • delete_post_meta

Ya, ada idiosyncrasies di antara mereka, terutama kerana ia berkaitan dengan bagaimana add_post_meta dan update_post_meta bekerja dan pelbagai cara get_post_meta dan delete_post_meta kerja, dan API yang akan kita periksa akan berfungsi dengan cara yang sama.

Untuk baki artikel ini, saya mengandaikan bahawa anda mempunyai pelayan web tempatan, akses kepada front-end pangkalan data, IDE, dan bahawa anda selesa bekerja dengan fail tutsplus-metadata.php.

Jika anda ingin tahu, saya akan menggunakan set alat berikut:

Perhatikan bahawa metadata pengguna akan disimpan di dalam jadual pangkalan data wp_usermeta, jadi kami akan merujuk bahawa dalam sebarang tangkapan skrin pangkalan data. Berbeza dengan jadual metadata catatan awal, sebenarnya terdapat beberapa data yang sudah ada dalam jadual metadata pengguna.

wp_usermeta

Ini adalah kerana beberapa data yang disimpan pada skrin profil pengguna:

The User Profile Screen

Walau bagaimanapun, API akan membolehkan kami menulis maklumat kami sendiri ke meja. Jadi dengan semua itu berkata, mari teruskan dan lihat cara untuk berfungsi dengan fungsi yang disediakan oleh WordPress.

Perhatikan bahawa melalui semua contoh yang diberikan, kami akan lulus 1 untuk parameter pertama kepada fungsi API sejak pengguna pertama sentiasa pentadbir laman. Ini biasanya dijamin hadir dalam mana-mana pemasangan yang diberikan.

Menambah Meta Pengguna

Anda boleh mencari rujukan kepada fungsi add_user_meta dalam Codex. Takrif fungsi itu boleh dikatakan sebagai ringkas:

Tambah metadata ke rekod pengguna.

Betapa bermanfaatnya ini? Iaitu, jika anda menggunakan plugin atau aplikasi web yang dibina di WordPress dan anda ingin memanjangkan apa yang orang dapat mengaitkan dengan profil mereka, maka ini adalah salah satu cara untuk melakukannya.

Ia mungkin sesuatu yang semudah menyediakan profil pengguna pada rangkaian sosial tertentu, atau ia mungkin sesuatu yang lebih maju di mana anda mungkin mengaitkan pengguna dengan data yang terdapat dalam jadual lain, pelbagai maklumat atau sesuatu yang lain.

Walau apa pun, inilah cara anda melakukannya. Berikut adalah perkara berikut: Ingat bagaimana cara menulis metadata untuk jawatan menggunakan fungsi add_post_meta menghasilkan beberapa baris yang dapat ditulis menggunakan kekunci yang sama?

Perkara yang sama mungkin menggunakan add_user_meta. Walau bagaimanapun, fungsi API menerima parameter keempat pilihan mengenai sama ada nilai yang dimasukkan mestilah unik atau tidak.

Nilai-nilai Bukan Unik

Jadi, pertama sekali, mari kita lihat pada kod untuk menambahkan beberapa metadata pengguna, dan mari berbuat demikian dengan tidak menyatakan bahawa ia mestilah unik.

Kod untuk melakukan ini akan kelihatan seperti ini:

Perhatikan bahawa kami menggunakan strategi yang sama seperti yang digunakan sebelum ini dalam siri ini:

  1. Kami menyambung ke the_content.
  2. Kami semak untuk melihat sama ada kami berada di pos Hello World.
  3. Jika ya, kami menambah metadata pengguna.
  4. Kami mengembalikan $kandungan ke WordPress.

Dengan kod ini di tempat dan dengan catatan Hello World dimuatkan dalam penyemak imbas anda, muat semula halaman beberapa kali.

Setelah selesai, jadual pangkalan data yang dihasilkan akan kelihatan seperti ini:

Non-unique Metadata

Seperti yang saya katakan, ia sangat mirip dengan bagaimana pelaksanaan metadata API.

Nilai unik

Menggunakan front-end pangkalan data anda, padamkan baris yang dicipta atau berasa bebas untuk memilih kunci baru (mungkin sesuatu seperti instagram_username). Saya akan memotong baris.

Kedua, saya juga akan mencipta fungsi kedua dan bukannya mengubahnya di atas supaya saya dapat menawarkan kod sumber lengkap pada akhir tutorial, jadi bacalah kod berikut dengan teliti:

Pertama, beri nilai unik untuk nilai meta (atau hujah ketiga) dalam panggilan fungsi. Muat semula halaman beberapa kali, dan kemudian lihat pangkalan data. Ia sepatutnya kelihatan seperti ini:

Multiple Records

Perhatikan apa yang menarik? Terdapat banyak nilai, tetapi semuanya sama.

Sekarang cuba ubah argumen nilai meta beberapa kali, dan kemudian perhatikan pangkalan data dan anda sepatutnya melihat sesuatu seperti ini:

Unique Metadata

Perhatikan perbezaannya? Tepat-tidak ada satu pun. Itu kerana kami kata hanya ada kunci yang unik. Oleh itu, tidak semestinya hanya satu rekod dibuat. Ini bermakna bahawa banyak rekod akan dibuat apabila fungsi dipanggil, tetapi ia akan sentiasa menggunakan nilai pertama yang disimpan yang dikaitkan dengan kunci tersebut.

Sekiranya anda mahu, teruskan dan hapuskan baris yang baru kami buat kerana ini memberikan segu yang hebat ke dalam fungsi seterusnya.

Mengemas kini Meta Pengguna

Dalam cara yang sama dengan cara kerja Post Meta API, fungsi kemas kini berfungsi dengan cara berikut:

Kemas kini medan meta pengguna berdasarkan ID pengguna. Gunakan parameter $prev_value untuk membezakan antara medan meta dengan kunci dan ID pengguna yang sama. Sekiranya medan meta untuk pengguna tidak ada, ia akan ditambah.

Apabila bekerja dengan fungsi ini, ia membantu memikirkannya dalam dua senario:

  1. apabila metadata sebelumnya telah ditambahkan menggunakan fungsi add_user_meta dan terdapat banyak rekod dengan maklumat yang sama
  2. apabila tiada metadata telah ditambah dan kami menambah rekod baru dan mahu menjadi unik

Dalam kes pertama, ia membantu menyediakan $prev_value kerana anda memberitahu WordPress yang bernilai untuk disasarkan dan dikemas kini.

Apabila Kami Telah Ditambah Metadata

Sebagai contoh, anggap pangkalan data kami kelihatan seperti yang dilakukan sebelumnya dalam tutorial:

Database

Dan kami ingin mengemas kini rekod yang mempunyai nilai sebelumnya https://twitter.com/tommcfarlin/. Untuk melakukan itu, kami akan mengemas kini kod yang kelihatan seperti ini.

Dan kemudian kemas kini ke pangkalan data akan kelihatan seperti ini:

Updating User Meta Data

Ambil perhatian bahawa ini mengemas kini semua nilai yang dikaitkan dengan kunci meta ini. Sudah tentu, itu hanya satu kegunaan fungsi.

Apabila Menambah Metadata Baru

Dalam kes kedua, anda tidak perlu menentukan nilai sebelumnya kerana anda akan menambah maklumat untuk kali pertama.

Untuk memperjelas, anda boleh menggunakan fungsi update_user_meta apabila anda ingin menambah maklumat ke pangkalan data. Ia tidak perlu wujud sebelum menggunakannya.

Ini berguna apabila anda ingin menambah satu rekod yang unik yang masih belum ditambah ke pangkalan data. Menggunakan fungsi ini mudah. Katakan kita ingin menyimpan nama saudara pengguna.

Dalam kes ini, kami akan melakukan ini:

Dan ini mengakibatkan rekod berikut dimasukkan ke dalam pangkalan data:

Updating user metadata

Jika anda menyegarkan halaman beberapa kali dan kemudian menyemak jadual pangkalan data anda, anda akan melihat bahawa hanya satu contoh nilai yang ditulis berbanding pelbagai nilai yang datang apabila menggunakan add_user_meta.

Kemudian jika kita mahu mengubah nilai itu, kita akan mengemas kini nilai meta yang dikaitkan dengan kunci meta yang ditentukan dan ia akan mengemas kini rekod tunggal itu.

Mendapatkan Meta Pengguna

Apabila mendapatkan semula metadata pengguna, kami mempunyai fungsi get_user_meta. Pada ketika ini, ia harus jelas bahawa parameter yang dijangka akan menjadi ID pengguna dan kunci meta.

Tetapi bagaimana pula dengan nilai meta?

Ingat ketika kami mengambil maklumat, kami hanya memerlukan ID pengguna dan kunci meta kerana itu adalah maklumat yang mengenal pasti untuk nilai tertentu.

Tetapi apa yang berlaku jika pemaju mempunyai beberapa rekod untuk satu kunci? Lebih khusus lagi, bagaimana jika mereka menggunakan fungsi add_user_meta seperti yang telah kami lakukan di atas dan mempunyai beberapa rekod?

Ini adalah di mana parameter keempat pilihan dimainkan: nilai boolean yang kita tetapkan jika kita ingin mendapatkan nilai tunggal atau pelbagai nilai. Nilai lalai (yang diluluskan jika tidak ditentukan) adalah false supaya kami akan sentiasa mendapatkan semula array kecuali kami menyatakan sebaliknya.

Mendapatkan Semua Rekod

Mari kita anggap bahawa kita sedang mengendalikan set data yang sama dari sebelumnya dalam tutorial. Iaitu, kami mempunyai beberapa entri untuk akaun Twitter pengguna. Ingat bahawa pangkalan data kelihatan seperti ini:

Non-unique Meta Data

Untuk mendapatkan semua maklumat ini daripada pangkalan data dan dipaparkan pada skrin, kami akan menggunakan kod berikut:

Dengan mengandaikan semua berjalan lancar, maka anda akan melihat sesuatu seperti ini di bahagian atas jawatan Hello World anda:

Jika tidak, semak semula panggilan ke var_dump yang telah anda buat, dan pastikan maklumat itu dalam pangkalan data sedia untuk diambil.

Mendapatkan Rekod Single

Sekiranya anda ingin mengambil satu rekod, maka anda boleh lulus sebagai parameter terakhir kepada fungsi tersebut. Ini akan mengambil rekod pertama yang dibuat dalam format rentetan.

Dan hasil kod ini akan mencetak ini di bahagian atas jawatan Hello World dari mana kami telah bekerja:

Ambil perhatian bahawa jika anda menggunakan update_user_meta dan anda tidak menentukan benar sebagai parameter akhir, anda akan mendapat pelbagai indeks tunggal yang diberikan kembali kepada anda.

Oleh itu, jika anda mencari perwakilan rentetan maklumat, selalu benar berlalu.

Memadam Meta Pengguna

Perkara terakhir yang perlu kita tutupi adalah cara untuk memadamkan data yang telah kami tulis kepada pangkalan data. Jika anda telah mengikuti dengan siri ini setakat ini, maka anda mungkin membangunkan semacam intuisi tentang bagaimana fungsi khusus ini akan berfungsi.

Dari halaman Codex yang disertakan:

Keluarkan kriteria padanan metadata dari pengguna. Anda boleh memadankan berdasarkan kekunci, atau kunci dan nilai. Mengalih keluar berdasarkan kunci dan nilai, akan terus dari mengeluarkan metadata pendua dengan kunci yang sama. Ia juga membenarkan mengeluarkan semua kunci padanan metadata, jika diperlukan.

Perhatikan bahawa fungsi ini direka untuk berfungsi dalam kes di mana terdapat beberapa rekod yang wujud dan anda mahu memadamkan semuanya, atau apabila anda mempunyai satu rekod yang wujud dan anda mahu mengeluarkannya.

Memadam Rekod Berbilang

Pertama, kita akan melihat cara menggunakan fungsi ini apabila terdapat banyak rekod dengan maklumat yang sama. Mari kita anggap, untuk tujuan contoh ini, pangkalan data kelihatan seperti ini:

Multiple Records

Di sini, kami mempunyai beberapa rekod. Untuk memadam rekod yang mempunyai kekunci yang sama, kami menggunakan panggilan tunggal untuk fungsi delete_user_meta dan lulus ID pengguna dan kunci meta.

Dan jika anda menyegarkan maklumat dalam jadual pangkalan data, anda akan perhatikan bahawa semua rekod telah dipadamkan:

All records erased

Walaupun ini adalah fungsi yang mudah digunakan, adalah penting untuk diingat bahawa ia boleh memadam berbilang baris dalam satu panggilan, jadi gunakannya dengan berhati-hati.

Rekod Satu

Jika, sebaliknya, anda mempunyai rekod tunggal untuk memadam, maka anda memerlukan tiga maklumat:

  1. ID pengguna
  2. kekunci meta
  3. nilai meta

Mempunyai ketiga-tiga nilai ini akan membolehkan anda memadamkan rekod tunggal. Jelas, ia membolehkan lebih ketepatan daripada penggunaan fungsi ini sebelum ini.

Oleh itu, dalam contoh kami, katakan bahawa kami mempunyai dua rekod, yang kedua-duanya mempunyai kunci meta twitter_account. Setiap kunci mempunyai nilai berikut:

  1. https://twitter.com/tommcfarlin
  2. https://twitter.com/pressware
Multiple Twitter Accounts

Dalam contoh kami, kami hanya mengambil berat tentang menghapus nilai kedua. Untuk melakukan itu, kami akan menggunakan kod berikut:

Dan kemudian jika anda memuat semula pangkalan data anda, anda harus melihat perkara berikut (atau yang serupa):

A single record remains

Ia bagus apabila API melakukan persis seperti yang anda harapkan.

Kod Sumber Lengkap

Berikut adalah satu salinan semua kod sumber yang kami sampaikan dalam artikel ini. Sila ambil perhatian bahawa panggilan add_action telah dimaklumkan kerana anda perlu memberi komentar kepada mereka berdasarkan apa yang anda mahu lakukan apabila bereksperimen dengan kod.

Di samping itu, jangan ragu untuk menambah ini pada fail yang kami buat dalam tutorial sebelumnya. Inilah yang saya lakukan ketika mengerjakan contoh; Walau bagaimanapun, anda mungkin mahu berhati-hati apabila bekerja pada fail supaya panggilan add_action yang betul ditetapkan berdasarkan apa yang anda ingin lakukan.

Kesimpulan

Seperti yang dinyatakan sebelum ini dalam artikel, anda boleh menyemak setiap fungsi dalam WordPress Codex, yang sepatutnya menjadi klik sekali lagi untuk pemaju WordPress.

Dalam artikel terakhir dalam siri ini, kita akan melihat bagaimana menangani metadata komen. Memandangkan apa yang telah kita pelajari setakat ini, ia sepatutnya menjadi sesuatu yang agak mudah diambil.

Sudah tentu, ia masih meninggalkan kita dengan metadata yang berkaitan dengan taksonomi. Kerana sifat taksonomi, terma, dan API, kami akan mengkaji semula mereka dalam susulan susulan.

Buat masa ini, terus bereksperimen dengan kod yang telah disediakan dalam artikel ini. Ingat bahawa ia dimaksudkan untuk tujuan demonstrasi sahaja dan tidak boleh dijalankan dalam persekitaran produksi.

Sepanjang siri ini, kami cuba meletakkan asas bagi pemaju WordPress pada masa akan datang untuk membina dari ketika mereka maju dan mengusahakan penyelesaian untuk majikan mereka, pelanggan mereka, atau untuk projek mereka sendiri.

Dengan kata itu, saya tidak sabar untuk meneruskan siri ini. Ingat, jika anda baru bermula, anda boleh menyemak siri saya tentang cara memulakan WordPress, yang memfokuskan pada topik khusus untuk pemula WordPress.

Sementara itu, jika anda sedang mencari utiliti lain untuk membantu anda membina set alat anda yang semakin berkembang untuk WordPress atau kod untuk belajar dan menjadi lebih pandai dalam WordPress, jangan lupa untuk melihat apa yang kami ada di Envato Market.

Akhirnya, anda dapat melihat semua kursus dan tutorial saya di halaman profil saya, dan anda boleh membaca lebih banyak artikel mengenai perkembangan WordPress dan WordPress di blog saya. Jangan ragu untuk mengikuti saya di Twitter juga di @tommcfarlin di mana saya bercakap mengenai pelbagai amalan pembangunan perisian dan bagaimana kita boleh menggunakannya di WordPress.

Tolong jangan teragak-agak untuk meninggalkan apa-apa soalan atau komen dalam suapan di bawah, dan saya berhasrat untuk memberi respons kepada masing-masing.

Sumber

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.