WordPress自定义字段

  • A+
所属分类:WordPress

1.后台进入发布文章的界面,点击右上角的“显示选项”,勾选“自定义项目”。

2.添加一个product_name字段,值为“我们的产品”(产品名称)。使用同样的方法,添加第二个字段product_price,值为“100”(产品价格)。

3.代码

<?php
/*
* 在这里添加我们的自定义字段
*/
// 设置自定义字段的留空时(没有设置时)的默认值
$product_name_def = '默认名称';
$product_price_def = 0;
$product_name = get_post_meta($post->ID, 'product_name', true);    // 检查这个字段是否有值
    if (empty ( $product_name )) {   //如果值为空,输出默认值
        $product_name = $product_name_def;
        }

$product_price = get_post_meta($post->ID, 'product_price', true);    // 检查这个字段是否有值
    if ( empty( $product_price ) ) {   //如果值为空,输出默认值
        $product_price = $product_price_def;
        }

//设置价格比例,未登录用户的价格是已登录的1.2倍,使用 $product_price_vat 变量输出新价格
    $vat = 1.2;
    $product_price_vat = ($product_price * $vat);
//使用了 update_post_meta 这个函数来将新价格保存为新字段 product_price_vat 的值
    $product_price_updated = update_post_meta($post->ID, 'product_price_vat', $product_price_vat);

    if (is_user_logged_in()) { //如果是登录用户,显示下面的内容
        echo '<strong>'. $product_name .' </strong> 的价格是: <strong>'. $product_price .' </strong>元';
        } else { //如果是未登录用户,显示下面的内容
        echo '<strong>'. $product_name .' </strong> 的价格是: <strong>'. $product_price_vat .' </strong>元';
        }
    ?>

4.三个主要函数:get_post_meta()update_post_meta()is_user_logged_in()

4.1 get_post_meta()

get_post_meta($post_id, $key, $single);

3个基本参数:

* $post_id——所检索数据的文章的ID,使用 $post->ID 来获取文章的ID
* $key——要检索的自定义字段名称
* $single——这是一个布尔值,如果设置为 true ,将直接以字符串的形式返回字段的值;一个自定义字段可以填写多个值,如果设置为 false,将返回一个数组 array 来显示这多个值

第 12 行,就是获取这篇文章的 'product_price'字段的值。

$product_name = get_post_meta($post->ID, 'product_name', true);

4.2 update_post_meta()

3个基本参数:

* $post_id——所检索数据的文章的ID,使用 $post->ID 来获取文章的ID
* $meta_key——你要编辑的自定义字段的名称
* $meta_value——赋予该自定义字段的值

第29 行,将$product_price_vat这个变量作为新字段product_price_vat的值。

$product_price_updated = update_post_meta($post->ID, 'product_price_vat', $product_price_vat);

4.3 is_user_logged_in()

条件,与if结合使用。

if (is_user_logged_in()) { //如果是登录用户,显示下面的内容
    echo '<strong>'. $product_name .' </strong> 的价格是: <strong>'. $product_price .' </strong>元';
    } else { //如果是未登录用户,显示下面的内容
    echo '<strong>'. $product_name .' </strong> 的价格是: <strong>'. $product_price_vat .' </strong>元';
    }
weinxin
独角兽驿站
公众号

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: