Gunakan metadata siaran WordPress dengan berkesan

PHPz
Lepaskan: 2023-09-02 17:42:02
asal
649 orang telah melayarinya

Dalam artikel pertama siri ini, saya memberikan gambaran keseluruhan semua jenis metadata yang disediakan oleh WordPress, tempat metadata disimpan dan perkara yang akan kami bincangkan dalam siri ini.

Selain itu, saya mentakrifkan apakah metadata itu peranannya dalam WordPress, dan bagaimana ia berkaitan dengan kami sebagai pembangun. Tetapi itulah tujuan pengenalan: tinjauan tentang perkara yang akan kami bincangkan dalam seluruh siri ini.

Bermula dengan artikel ini, kami akan mula meneroka WordPress Post Meta API, memahami mengapa ia berguna, perkara yang boleh kami lakukan dengannya, dan cara memanfaatkan kaedah yang tersedia melalui aplikasi WordPress.

Penafian untuk semua

Pertama sekali, jika anda seorang pembangun lanjutan, siri tutorial ini mungkin tidak banyak membantu anda. Sebaliknya, ia lebih sesuai untuk mereka yang telah melakukan beberapa kerja pada tema, mungkin mengubah suai beberapa kod pemalam, dan bersedia untuk melangkah lebih jauh dengan menambahkan beberapa maklumat tambahan pada siaran (atau jenis siaran) yang membentuk projek mereka.

Kedua, sila ambil perhatian bahawa contoh kod dalam tutorial ini bukan dimaksudkan untuk persekitaran pengeluaran. Sebaliknya, kod yang kami lihat tidak bertujuan untuk digunakan di mana-mana tempat di mana tapak itu boleh diakses secara terbuka kepada sesiapa sahaja.

Kini, saya bercadang untuk mengupas teknik yang lebih lanjut mengenai topik ini selepas menamatkan siri ini. Tetapi buat masa ini, kami hanya mengambil berat tentang penggunaan API.

Kenapa? Apakah kelewatan dalam melaporkan sambungan? Ringkasnya, ia mempunyai kaitan dengan keselamatan laman web. Khususnya, apabila kami menulis maklumat ke pangkalan data, kami mesti menganggap bahawa data disimpan dalam format yang tidak selamat;

Kita perlu meneroka set API yang berbeza sama sekali untuk membersihkan data yang akan digunakan bersama dengan API metadata, tetapi ini bukan tutorial untuk berbuat demikian.

Saya tahu, bercakap tentang API ini dan tidak dapat memanfaatkannya mungkin terdengar sedikit mengecewakan. Tetapi ingat, ini hanyalah pengenalan kepada API. Tutorial ini harus memberi anda maklumat yang mencukupi untuk mula menggunakan metadata siaran pada komputer anda, tetapi juga harus meninggalkan anda dengan soalan yang mencukupi supaya kami boleh meneroka topik dengan lebih mendalam dalam siri artikel akan datang.

Dengan itu, mari teruskan dan mula menggunakan WordPress Post Meta API. Sila ambil perhatian: ini adalah tutorial yang panjang.

Pengenalan API

Sebelum kita melihat kod, sentiasa pastikan anda mempunyai alatan yang diperlukan untuk menyemak imbas pangkalan data yang menjalankan pemasangan WordPress anda. Antara alatan yang ada termasuk:

  • phpMyAdmin
  • Sekuel Pro
  • MySQL Workbench
  • Pentadbir

Tetapi jangan ragu untuk menggunakan apa sahaja yang anda suka. Selagi anda boleh melihat data dalam pangkalan data, anda boleh pergi.

Seterusnya, mari kita fahami cara WordPress mentakrifkan metadata siaran. Mengikut Kod:

WordPress mempunyai keupayaan untuk membenarkan pengarang siaran menetapkan medan tersuai pada siaran. Maklumat tambahan sewenang-wenang ini dipanggil metadata.

Metadata dikendalikan melalui pasangan kunci/nilai. Kuncinya ialah nama elemen metadata. Nilai ini ialah maklumat yang akan muncul dalam senarai metadata untuk setiap siaran yang dikaitkan dengan maklumat tersebut.

Ringkasnya, WordPress membenarkan kami menulis maklumat tersuai pada pangkalan data, mengaitkannya dengan mana-mana siaran yang kami mahu, dan kemudian mendapatkannya semula seperti yang diperlukan. Selain itu, maklumat disimpan menggunakan pasangan kunci/nilai unik.

Tulis metadata kita sendiri

Jika ini baru untuk anda, jangan risau. Ideanya ialah untuk setiap nilai yang anda simpan, ia dikaitkan dengan kunci unik (sama seperti tombol pintu mempunyai kunci unik yang digunakan untuk membuka kuncinya).

Kuncinya ialah bagaimana kami mendapatkan semula nilai daripada siaran. Tetapi ia menimbulkan persoalan: Apakah yang berlaku jika artikel mempunyai berbilang metadata yang dikaitkan dengannya? Iaitu, jika mana-mana siaran tertentu boleh menyimpan berbilang metadata secara serentak, bagaimanakah kita boleh mendapatkan semula metadata unik?

Apabila kita mula melihat beberapa contoh kod di bawah, kita akan melihat bahawa selain menggunakan kunci yang digunakan semasa menyimpan data, kita juga perlu menghantar ID unik siaran ke fungsi tersebut.

Tetapi tiada yang lebih baik untuk melihatnya beraksi. Jadi, dengan mengandaikan anda telah menyediakan WordPress pada mesin tempatan anda dan boleh mengedit dalam teras tema lalai functions.php, mari mulakan.

Untuk rujukan

Saya akan menggunakan alatan berikut:

  • WordPress 4.4
  • Dua puluh enam topik
  • Atom
  • Sekuel Pro

Perkara yang paling penting ialah anda menjalankan WordPress dan tema yang dinyatakan di atas.

Akhir sekali, jika anda lebih suka IDE lain dan bahagian hadapan pangkalan data, itu tidak mengapa.

Kami merangkumi banyak maklumat dalam pengenalan artikel ini, tetapi maklumat ini akan berguna apabila kami mula melihat bukan sahaja Post Meta API tetapi API lain juga. Jadi kekalkan mentaliti ini. Saya juga akan merujuk artikel ini dalam artikel akan datang.

Mari kita mendalami API.

Arahan yang sangat penting

Cara kami menggabungkan kod bukan cara profesional untuk menukar tema, melaksanakan ciri ini atau berinteraksi dengan API. Kami melakukan ini sebagai langkah pertama ke dalam pembangunan WordPress untuk pemula.

Dalam siri berikutnya, kami akan mengekstrak kerja yang dilakukan dalam siri ini ke dalam pemalam yang lebih boleh diselenggara yang juga memberi lebih perhatian kepada kebolehselenggaraan, keselamatan, dsb.

Pada masa ini, kami memberi tumpuan kepada asas API.

Sediakan tema

Ingat bahawa saya menggunakan pemasangan asas WordPress bersama-sama Twenty Six Themes untuk demo yang akan kita lihat sepanjang tutorial ini dan tutorial yang lain dalam siri ini.

Kedua, kami akan membuat perubahan dalam functions.php. Ini biasanya bukan tempat terbaik untuk membuat perubahan ini, bagaimanapun, pastikan anda membaca nota di atas sebelum meneruskan. functions.php 中进行更改。这通常不是进行此更改的最佳位置;但是,请确保您在继续之前已阅读上面的注释。

话虽如此,我们假设您的服务器已运行,您的 IDE 已启动并准备就绪,并且编辑器中已存在 functions.php。虽然您的屏幕截图可能看起来有点不同,但它应该类似于:

高效地使用 WordPress 帖子元数据

使用 functions.php 的挑战在于它已经充满了有助于增强功能的代码现有的主题。尽管我们最终将在未来的系列中将代码移至插件中,但我们至少要迈出制作文件的第一步,以便我们可以独立包含我们的代码。

使用您选择的 IDE:

  1. Create a new file in the root directory of 二十六主题.
  2. 将文件命名为 tutsplus-metadata.php

完成后,您的文件系统上应该有如下内容:

高效地使用 WordPress 帖子元数据

最后,我们需要确保将其包含在 functions.php 中。为此,请在 PHP 起始标记下添加以下代码行。

<?php

include_once( 'tutsplus-metadata.php' );
Salin selepas log masuk

重新加载您的浏览器。如果一切顺利,您应该会看到与将文件添加到 functions.php 之前完全相同的主题。

现在,让我们开始工作吧。

开始使用

回想一下我们之前的讨论,我们需要三件事才能将元数据添加到数据库:

  1. 帖子 ID
  2. 我们可以用来识别元数据的唯一密钥
  3. 我们要存储并稍后检索的值

在本教程中,我们所要做的就是添加元数据,这些元数据将显示在每次安装 WordPress 时标配的默认 Hello World! 帖子中。

假设我们想要添加一些包含我们姓名的元数据。因此,我们将使用的元键是 my_name ,我们将使用的值是您的名字。就我而言,是“Tom McFarlin”。

我们要做的第一件事是定义一个挂钩到 the_content 的函数。这将使我们能够在函数运行时输出文本。如果您不熟悉 hooks,请阅读本系列。

您的初始代码应如下所示:

<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

  if ( 1 === get_the_ID() ) {
    echo "[We are here.]"
  }

  return $content;

}
Salin selepas log masuk

当您执行此代码时,字符串“[We are here.]”应该出现在帖子内容上方,然后出现在其他内容之前,并且它应该仅出现在世界你好!帖子。这是因为我们在 echo 字符串之前检查以确保 ID 为 1。

请注意,本文末尾共享的代码的最终版本将包含注释。在那之前,当我们将每个新部分添加到代码中时,我将解释代码正在做什么。

添加元数据

现在让我们添加一些实际的元数据。为此,请将此代码添加到条件正文中,以便我们确定我们是针对 Hello World 这样做的。由于我们已经在条件中检查 ID 1,因此我们可以删除上一节中添加的代码并更新它。

在条件语句体内,我们将调用 add_post_meta API 函数,如下所示:

<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

    if ( 1 === get_the_ID() ) {
	    add_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin' );
	}

	return $content;

}
Salin selepas log masuk

如果我们可以利用这些信息做点什么,那就太好了。不过,在此之前,我们还需要了解更多信息。也就是说,关于更新元数据(以及它与添加元数据有何不同)以及在处理 API 时您可能没有想到的一些细微差别。

更新元数据

添加元数据和更新元数据之间存在细微差别。您知道键如何唯一标识与其关联的值吗?嗯,这部分准确。

当您调用 add_post_meta

Maksudnya, kami menganggap pelayan anda sedang berjalan, IDE anda sudah siap dan sedia, dan functions.php sudah wujud dalam editor. Walaupun tangkapan skrin anda mungkin kelihatan sedikit berbeza, ia sepatutnya kelihatan seperti:

高效地使用 WordPress 帖子元数据Gunakan metadata siaran WordPress dengan cekap

#🎜 🎜#Cabaran menggunakan functions.php ialah ia sudah penuh dengan kod yang membantu meningkatkan kefungsian tema sedia ada. Walaupun akhirnya kami akan mengalihkan kod ke dalam pemalam dalam siri akan datang, kami mahu sekurang-kurangnya mengambil langkah pertama untuk membuat fail supaya kami boleh memasukkan kod kami secara bebas.

Gunakan IDE pilihan anda: #🎜🎜#
  1. Buat fail baharu dalam direktori akar dua puluh enam tema.
  2. Namakan fail tutsplus-metadata.php.
#🎜🎜#Apabila selesai, anda sepatutnya mempunyai yang berikut pada sistem fail anda: #🎜🎜# #🎜🎜#Gunakan metadata siaran WordPress dengan cekap#🎜🎜# #🎜 🎜#Akhir sekali, kami perlu memastikan kami memasukkannya dalam functions.php. Untuk melakukan ini, tambahkan baris kod berikut di bawah teg permulaan PHP. #🎜🎜#
<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

    if ( 1 === get_the_ID() ) {
		add_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin', true );
	}

	return $content;

}
Salin selepas log masuk
Salin selepas log masuk
#🎜🎜#Muat semula penyemak imbas anda. Jika semuanya berjalan lancar, anda sepatutnya melihat tema yang sama seperti yang anda lakukan sebelum menambah fail pada functions.php. #🎜🎜# #🎜🎜#Sekarang, mari kita mula bekerja. #🎜🎜# #🎜🎜#Mulakan#🎜🎜# #🎜🎜#Mengimbas kembali perbincangan kami sebelum ini, kami memerlukan tiga perkara untuk menambah metadata ke pangkalan data: #🎜🎜#
  1. ID Siaran
  2. Kunci unik yang boleh kami gunakan untuk mengenal pasti metadata
  3. Nilai yang ingin kami simpan dan dapatkan semula kemudian
#🎜🎜#Dalam tutorial ini, kita hanya perlu menambah metadata yang akan muncul dalam lalaiHello World yang menjadi standard dengan setiap pemasangan WordPress! dalam siaran. #🎜🎜# #🎜🎜# Katakan kita mahu menambah beberapa metadata yang mengandungi nama kita. Jadi kunci meta yang akan kami gunakan ialah my_name dan nilai yang kami akan gunakan ialah nama anda. Dalam kes saya, ia ialah "Tom McFarlin." #🎜🎜# #🎜🎜#Perkara pertama yang perlu kita lakukan ialah menentukan fungsi yang menghubungkan ke the_content. Ini akan membolehkan kami mengeluarkan teks semasa fungsi sedang berjalan. Jika anda baru mengenali mata kail, baca siri ini. #🎜🎜# #🎜🎜# Kod awal anda sepatutnya kelihatan seperti ini: #🎜🎜#
<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

    if ( 1 === get_the_ID() ) {
		update_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin' );
	}

	return $content;

}
Salin selepas log masuk
Salin selepas log masuk
#🎜🎜#Apabila anda melaksanakan kod ini, rentetan "[Kami di sini.]" sepatutnya muncul di atas kandungan siaran, kemudian sebelum kandungan lain dan ia sepatutnya muncul pada em>Hello world! jawatan. Ini kerana kami menyemak untuk memastikan ID ialah 1 sebelum rentetan echo. #🎜🎜# #🎜🎜# Sila ambil perhatian bahawa versi akhir kod yang dikongsi pada penghujung artikel ini akan mengandungi ulasan. Sehingga itu, saya akan menerangkan perkara yang dilakukan oleh kod itu semasa kami menambah setiap bahagian baharu padanya. #🎜🎜# #🎜🎜#Tambah metadata#🎜🎜# #🎜🎜# Sekarang mari tambah beberapa metadata sebenar. Untuk melakukan ini, tambahkan kod ini pada badan syarat supaya kami tahu kami melakukan ini untuk Hello World. Memandangkan kami telah menyemak ID 1 dalam keadaan tersebut, kami boleh memadamkan kod yang kami tambah dalam bahagian sebelumnya dan mengemas kininya. #🎜🎜##🎜🎜##🎜🎜# #🎜🎜#Dalam badan pernyataan bersyarat, kami akan memanggil fungsi API add_post_meta seperti berikut: #🎜🎜#
<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

    if ( 1 === get_the_ID() ) {
        var_dump( get_post_meta( get_the_ID(), 'my_name' ) );
    }

    return $content;

}
Salin selepas log masuk
Salin selepas log masuk
#🎜🎜#Alangkah baiknya jika kita dapat melakukan sesuatu dengan maklumat ini. Namun sebelum itu berlaku, kita perlu tahu lebih lanjut. Walau bagaimanapun, terdapat beberapa nuansa tentang mengemas kini metadata (dan cara ia berbeza daripada menambah metadata) dan beberapa yang anda mungkin tidak terfikir semasa berurusan dengan API. #🎜🎜# #🎜🎜#Kemas kini metadata#🎜🎜# #🎜🎜#Terdapat perbezaan yang ketara antara menambah metadata dan mengemas kini metadata. Adakah anda tahu cara kunci mengenal pasti nilai yang dikaitkan dengannya secara unik? Nah, itu sebahagiannya tepat. #🎜🎜# #🎜🎜#Apabila anda memanggil add_post_meta, entri dibuat setiap kali anda membuat panggilan itu. Jadi dalam kod kami di atas, jika anda memuat semula halaman tiga kali, anda akan melihat sesuatu seperti ini: #🎜🎜# #🎜🎜##🎜🎜##🎜🎜##🎜🎜# Sangat ingin tahu kan? Ingat kembali kandungan kod: #🎜🎜#
请注意,如果指定帖子的自定义字段中已存在给定键,则会添加具有相同键的另一个自定义字段,除非 $unique 参数设置为 true,在这种情况下,不会进行任何更改。

啊,该函数接受一个可选参数。这是一个名为 $unique 的布尔值,如果我们只想确保添加的值是唯一的,它允许我们传递 true

此时您可能想要删除现有记录。如果没有,也没关系,只需为 my_name 键使用不同的值即可。

这意味着我们可以将代码更新为如下所示:

<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

    if ( 1 === get_the_ID() ) {
		add_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin', true );
	}

	return $content;

}
Salin selepas log masuk
Salin selepas log masuk

现在您只创建一个条目。此外,如果您尝试更改代码中该键的值,那么它在数据库中将不会被覆盖。。一旦写入帖子元数据完成,它就会像第一次一样存储。

但事实并非一定如此,这就是 update_post_meta 发挥作用的地方。事实上,update_post_meta 可能比 add_post_meta 更常用,具体取决于您的用例。

在查看代码之前,请先查看 Codex 的内容:

函数 update_post_meta() 更新指定帖子的现有元键(自定义字段)的值。
这可以用来代替 add_post_meta() 函数。该函数要做的第一件事是确保 $meta_key 已经存在于 $post_id 上。如果没有,则调用 add_post_meta($post_id, $meta_key, $meta_value) 并返回其结果。

你明白了吗?它可以“用来代替 add_post_meta”,这很有用,因为这意味着:

  1. 如果给定键的帖子元数据已存在,
  2. 如果您使用 update_post_meta
  3. 您将覆盖之前的值。

此时,您可能想要删除数据库中的信息,或创建一对新的键和值。这意味着我们可以将代码更新为如下所示:

<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

    if ( 1 === get_the_ID() ) {
		update_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin' );
	}

	return $content;

}
Salin selepas log masuk
Salin selepas log masuk

不过,这也带来了一些固有的危险。

也就是说,如果您覆盖了一个您从未打算覆盖的值,那么该值就会消失,并且无法回收(除非您做了超出本系列范围的更出色的工作)。

不过, update_post_meta 有一个可选的最后一个参数,那就是 $prev_value 参数。也就是说,您可以指定要覆盖哪个值。

例如,您有使用 add_post_meta 创建的具有相同密钥的多条记录,并且您只想更新其中一条记录。要更新该数据,您需要传入与该一条记录对应的值。

有什么区别?

add_post_metaupdate_post_meta 之间的区别可能被认为很微妙,但这取决于您的用例。

在这里,我将尝试尽可能简单地分解它们,因为尽管考虑到我们上面看到的示例,它可能看起来很复杂,但当您将其全部展开时,它会更简单。

  • 当您想要将记录引入数据库时​​,add_post_meta 非常有用。如果该值已经存在,则可能会或不会写入新值。如果您为函数的 $unique 参数传递 true ,则只会创建第一条记录,并且不会覆盖该 >除了 update_post_meta
  • update_post_meta 可以用来代替 add_post_meta 并且将始终覆盖以前存在的值。如果您正在处理由 add_post_meta 创建的多条记录,那么您可能需要指定要覆盖的先前值。

这就是一切。当然,我们仍然需要处理从数据库中检索记录并将其显示在屏幕上的问题。

检索元数据

在检索帖子元数据时,您需要记住两件事:

  1. 元数据可以字符串形式检索。
  2. 元数据可以作为数组检索。

有时这取决于您存储原始信息的方式;有时它取决于您想要如何使用它。

在了解检索信息的各种方法之前,让我们首先了解一下执行此操作的基本 API 调用。具体来说,我说的是 get_post_meta。如果您到目前为止一直在关注,那么理解 API 应该相对容易。

该函数接受三个参数:

  1. 帖子 ID
  2. 元数据键
  3. 如果您想要以字符串或数组形式检索值(如果未指定任何内容,则数组是默认值),则为可选布尔值

来自法典:

检索帖子的帖子元字段。如果 $single 为 false,则将是一个数组。如果 $single 为 true,则为元数据字段的值。

看起来很简单。因此,考虑到我们源代码的最后一部分现在所在的位置,我想说我们可以通过调用 get_post_meta( get_the_ID(), 'my_name' ); 来检索信息。

上面的代码将返回一个数组。

多个值

每当您听到“多个值”这个短语时,想象一下您正在使用的编程语言中的数组或某种类型的数据集合会很有帮助。

在我们的示例中,考虑一下我们使用 add_post_meta 多次存储相同密钥的情况。作为回顾,数据库如下所示:

高效地使用 WordPress 帖子元数据

如果我通过密钥检索信息,我会得到什么?由于我没有指定我想要一个字符串,因此我将返回所有记录的数组。这将使我能够迭代它们中的每一个。

另一方面,如果我指定 true 来获取字符串,那么我只会获取使用 add_post_meta 创建的第一行。

为此,如果您希望获取给定键的多个值,那么您的代码将如下所示:

<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

    if ( 1 === get_the_ID() ) {
        var_dump( get_post_meta( get_the_ID(), 'my_name' ) );
    }

    return $content;

}
Salin selepas log masuk
Salin selepas log masuk

请注意,我使用 var_dump 是为了更轻松地在浏览器中查看从 WordPress 返回的信息;然而,我更喜欢使用调试器,我们可能会在以后的文章中讨论这一点。

单一值

现在假设您想要为一篇文章存储单个值。在这种情况下,您仍然需要帖子 ID 和元数据密钥;但是,您还需要提供 true 作为 get_post_meta 的第三个参数。

如上所述,如果您正在处理使用 add_post_meta 创建多行的情况,那么您将取回创建的第一行;但是,如果您将此函数与 update_post_meta 一起使用,那么您将返回存储的数据的字符串值。

由于我们已经介绍了前者但没有介绍后者,所以代码如下:

<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

    if ( 1 === get_the_ID() ) {
        var_dump( get_post_meta( get_the_ID(), 'my_name', true ) );
    }

    return $content;

}
Salin selepas log masuk

然后,您将在调用该函数时返回您保存为元值的任何值。与必须使用一组可能包含也可能不包含类似信息的记录和数组相比,这非常简单。

删除元数据

使用帖子元数据的最后一点与删除它有关。这很简单,但我们需要了解一些细微差别,以确保我们有效地做到这一点。

但首先,这是 Codex 的定义:

此函数从指定帖子中删除具有指定键或键和值的所有自定义字段。

简短、甜蜜、切中要点。该函数接受三个参数:

  1. 帖子 ID
  2. 元键
  3. 元值

meta 值是可选的,但如果您一直在使用 add_post_meta 并希望删除多次调用该函数创建的特定条目之一(正如我们已经在本教程的其他地方可以看到)。

虽然调用 delete_post_meta 就像传递帖子 ID、元键和可选元值一样简单,但该函数返回一个布尔值,说明数据是否已删除。

删除我们迄今为止一直在查看的一些帖子元数据的示例代码可能如下所示:

<?php

add_filter( 'the_content', 'tutsplus_metadata' );
function tutsplus_metadata( $content ) {

    if ( 1 === get_the_ID() ) {
        delete_post_meta( get_the_ID(), 'my_name' );
    }

    return $content;

}
Salin selepas log masuk

但是,您的实施可能会有所不同。如果您正在使用多个元数据,并且想要验证删除是否成功,那么您可以将代码包装在条件中。

最后的代码示例

下面您将找到一个很长的、有记录的代码片段,它应该代表我们在本教程中讨论的大部分内容。请注意,这些函数挂接到 the_content

这仅用于演示目的,以便您可以在加载特定页面时轻松触发这些函数。

<?php
/**
 * This file shows how to work with the common Post Meta API functions.
 *
 * Namely, it demonstrates how to use:
 * - add_post_meta
 * - update_post_meta
 * - get_post_meta
 * - delete_post_meta
 *
 * Each function is hooked to 'the_content' so that line will need to be
 * commented out depending on which action you really want to test.
 *
 * Also note, from the tutorial linked below, that this file is used form
 * demonstration purposes only and should not be used in a production
 * environment.
 *
 * Tutorial:
 * http://code.tutsplus.com/tutorials/how-to-work-with-wordpress-post-metadata--cms-25715
 *
 * @version    	1.0.0
 * @author		 Tom McFarlin
 * @package		tutsplus_wp_metadata
 */

add_filter( 'the_content', 'tutsplus_add_post_meta' );
/**
 * Determines if the current post is the default 'Hello World' post and, if so,
 * adds my name as the post meta data to the postmeta database table.
 *
 * @param		string $content		The post content.
 * @return	 string $content		The post content.
 */
function tutsplus_add_post_meta( $content ) {

	if ( 1 === get_the_ID() ) {
		add_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin' );
	}

	return $content;

}

add_filter( 'the_content', 'tutsplus_update_post_meta' );
/**
 * Determines if the current post is the default 'Hello World' post and, if so,
 * updates my name as the post meta data to the postmeta database table. This
 * is an alternative way of writing post metadata to the postmeta table as
 * discussed in the linked tutorial.
 *
 * @param		string $content		The post content.
 * @return	 string $content		The post content.
 */
function tutsplus_update_post_meta( $content ) {

	if ( 1 === get_the_ID() ) {
		update_post_meta( get_the_ID(), 'my_name', 'Tom McFarlin' );
	}

	return $content;

}

add_filter( 'the_content', 'tutsplus_get_post_meta' );
/**
 * Determines if the current post is the default 'Hello World' post and, if so,
 * retrieves the value for the 'my_name' in the format of a string and echoes
 * it back to the browser.
 *
 * @param		string $content		The post content.
 * @return	 string $content		The post content.
 */
function tutsplus_get_post_meta( $content ) {

	// Note: Don't worry about the esc_textarea call right now.
	if ( 1 === get_the_ID() ) {
		echo esc_textarea( get_post_meta( get_the_ID(), 'my_name', true ) );
	}

	return $content;

}

add_filter( 'the_content', 'tutsplus_delete_post_meta' );
/**
 * Determines if the current post is the default 'Hello World' post and, if so,
 * deletes the post metadata identified by the unique key.
 *
 * @param		string $content		The post content.
 * @return	 string $content		The post content.
 */
function tutsplus_delete_post_meta( $content ) {

	if ( 1 === get_the_ID() ) {
	    delete_post_meta( get_the_ID(), 'my_name' );
	}

	return $content;

}
Salin selepas log masuk

通常,您会发现与其他挂钩相关的元数据函数,例如 save_post 和类似操作,但这是更高级工作的主题。也许我们会在今年晚些时候的另一个系列中介绍这一点。

结论

WordPress Codex 中提供了每个 API 函数,因此,如果您想在本系列的下一篇文章之前跳到前面并进行更多阅读,那么请随意这样做。

如前所述,这是对 WordPress Post Meta API 的介绍。通过 Codex、本教程以及提供的源代码中提供的信息,您应该能够开始向与您的每篇帖子相关的数据库写入其他内容。

但请记住,这只是为了演示目的,因为我们有更多信息要介绍。具体来说,我们需要检查数据清理和数据验证。尽管我们首先要讨论其他主题(例如用户元数据、评论元数据等),但我们很快就会讨论更高级的主题。

Akhirnya, kami cuba meletakkan asas untuk pembangun WordPress masa depan untuk terus membangunkan penyelesaian untuk orang lain, untuk institusi mereka, dan juga untuk projek mereka.

Setakat ini, saya tidak sabar untuk meneruskan siri ini. Ingat, jika anda baru bermula, anda boleh menyemak siri saya tentang Cara Bermula dengan WordPress , yang memfokuskan pada tema khusus untuk pemula WordPress.

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

Ingat anda boleh melihat semua kursus dan tutorial saya pada halaman profil saya dan anda boleh mengikuti saya di blog dan/atau Twitter saya (@tommcfarlin) di mana saya membincangkan pelbagai amalan pembangunan perisian serta Cara kami menggunakannya dalam WordPress.

Sila tinggalkan sebarang soalan atau komen dalam suapan di bawah dan saya akan melakukan yang terbaik untuk membalas setiap satu.

Sumber

  • Medan tersuai
  • tambah_siaran_bila
  • kemas kini_post_meta
  • dapatkan_siaran_bila
  • delete_post_meta
  • Pos contoh metafungsi
  • Gema
  • var_dump

Atas ialah kandungan terperinci Gunakan metadata siaran WordPress dengan berkesan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!