آموزش وردپرس ، آشنایی با پست متا در وردپرس

Metadata

وردپرس به شما اجازه ایجاد دو نوع محتوا را  به طور پیش فرض می دهد که شامل  پست ها و صفحات می باشد.برای پست ها و صفحات می توانید در صفحه  ادمین وردپرس یک محتوا روی فرمت پاراگراف در یک ویرایشگر بصری اضافه کنید.این محتوا در قالب وردپرس شما نمایش داده می شود.

اما اگر شما شروع به استفاده وردپرس می کنید ممکن است سایت های زیادی ،  محتواهای مختلفی لازم دارند و نوع های پیشفرض وردپرس(که شامل یک عنوان(title) ، محتوا(content)) می باشد،برای شما کافی نیست و برای گذاشتن محتوای جدید نیاز به ساخت نوع های دیگری دارید.

پست متا ( زمینه های سفارشی) از ویژگی های وردپرس به  ما کمک می کند به ارتباط محتوای بیشتر با یک پست.این محتوا می تواند بستگی به نوع سایت شما و نیاز شما متفاوت باشد.شما همچنین می توانید یک تعداد از پست متا که می توان به یک پست اختصاص داده می شود بسازید.

بنابراین در این مقاله چگونگی اضافه کردن یک پست متا را برای افزودن و یا نمایش یک پست متا در سایت وردپرسی خود نمایش می دهیم.

افزودن پست متا در ادمین وردپرس 

افزودن پست متا برای یک پست می تواند بسیار ساده باشد .در صفحه ویرایش پست شما می توانید یک پست متا به آن اضافه کنید.شما می توانید مانند تصویر زیر گزینه انتخاب  فیلد سفارشی را انتخاب کنید تا در هنگام افزودن پست فیلد های سفارشی ظاهر شوند.

شما کافیست فقط آن را فعال کرده و قادر به اضافه کردن فیلد های سفارشی در زیر یک محیط بصری  بپردازید که در زیر آمده است.

 

 

در اینجا یک لیست کشویی شامل تمام کلید های پست متا وجود دارد که شما می توانید برای پست ها اضافه کنید.شما می توانید کلید متا را از لیست کشویی برای پست ها حتی برای یکی پست اضافه کنید.شما می توانید با چند کلیک پست متای جدید را وارد کنید.

در بالا ما یک فیلد با نام قیمت و مقدار ۴۵۰ دلار برای یک پست قراردادیم که فقط برای این پست می باشد.

استفاده از پست متا در قالب خود

بعد از اینکه پست متا هارا فعال کردید و به پست ها مقادیر دادید  برای نمایش و گرفتن  پست متا ها در قالب خود می توانید از تابع  get_post_meta استفاده کنید  مثال زیر را مشاهده کنید 

<?php
$price = get_post_meta(get_the_ID(), 'Price', true);
echo 'Cost of the item : '.$price;
?>

 

تابع get_post_meta سه آرگومان را می گیرد که می توانید در دریافت متاداده در وردپرس با get post meta استفاده کنید. 

شما همچنین می توانید پست متا ها را آپدیت کنید که می توانید از کد زیر استفاده کنید یا از آموزش ویرایش پست های متا در وردپرس update post meta استفاده کنید و حتی به وسیله  بروز رسانی آن اگر پست متایی وجود نداشته باشد یک پست متای جدید بسازید  که می توانید برای اضافه کردن پست متای جدید از اضافه کردن پست های متا در وردپرس add post meta استفاده کنید.

در کد زیر ما قیمت را گرفته و وقتی بزرگ تر از ۰ باشد یک پست متای جدید برای آن می آوریم که میزان تخفیف را انجام می دهد بدین صورت که اگر قیمت بیشتر از ۴۰۰ دلار بود ۱۵ درصد تخفیف بدهد و قیمت را در یک پست متا به نام  Discount قرار دهد.

add_action( 'save_post', 'add_discount_meta' );
 
function add_discount_meta( $post_id )
{
 
        $price = get_post_meta($post_id, 'Price', true);
        if(strlen($price) > 0)
        {
            $discount = '0%';
            if(intval(str_replace("$","",$price)) > 400 )
               $discount = '15%';
 
             update_post_meta( $post_id, 'Discount', $discount );
        }
 
}

برای حذف یک پست متا نیز می توانید از حذف پست های متا در وردپرس delete post meta استفاده کنید.

خلاصه

وردپرس بسیار انعطاف پذیر می باشد واز آن نه تنها برای بلاگ های ساده بلکه برای سایت های حرفه ای نیز اضافه می شود.شما می توانید طیف وسیعی از پست متا ها از جمله تصویر و متن و… بگذارید.البته توصیه ما به شما استفاده از پلاگین معرفی پلاگین Advanced Custom Fields می باشد که شما میتوانید سایت خود را به یک ابر سایت وردپرسی تبدیل کنید.

در زیر ما یک مثال برای تمامی توابع پست متا می گذاریم تا یک مثال کامل باشد که شما داشته باشید.


<?php 
/*******************
This function handles the mood and listening_to meta tags.
It can be called with an action of update, delete, and get (default)
When called with an action of update, either $mood or $listening_to must be provided.
i.e. mood_music( $post->ID, 'update', 'Happy', 'Bon Jovi - It's My Life' );
*******************/
function mood_music( $post_id, $action = 'get', $mood = 0, $listening_to = 0 ) {
  
  //Let's make a switch to handle the three cases of 'Action'
  switch ($action) {
    case 'update' :
      if( ! $mood && ! $listening_to )
        //If nothing is given to update, end here
        return false;
      
      //add_post_meta usage:
      //add_post_meta( $post_id, $meta_key, $meta_value, $unique = false )
      
      //If the $mood variable is supplied,
      //add a new key named 'mood', containing that value.
      //If the 'mood' key already exists on this post,
      //this command will simply add another one.
      if( $mood ) {
        add_post_meta( $post_id, 'mood', $mood );
        return true;
        }
      //update_post_meta usage:
      //update_post_meta( $post_id, $meta_key, $meta_value )
      
      //If the $listening_to variable is supplied,
      //add a new key named 'listening_to', containing that value.
      //If the 'listening_to' key already exists on this post,
      //this command will update it to the new value
      if( $listening_to ) {
        add_post_meta( $post_id, 'listening_to', $listening_to, true ) or
          update_post_meta( $post_id, 'listening_to', $listening_to );
        return true;
      }
    case 'delete' :
      //delete_post_meta usage:
      //delete_post_meta( $post_id, $meta_key, $prev_value = ' ' )
    
      //This will delete all instances of the following keys from the given post
      delete_post_meta( $post_id, 'mood' );
      delete_post_meta( $post_id, 'listening_to' );
      
      //To only delete 'mood' if it's value is 'sad':
      //delete_post_meta( $post_id, 'mood', 'sad' );
    break;
    case 'get' :
      //get_post_custom usage:
      //get_post_meta( $post_id, $meta_key, $single value = false )
  
      //$stored_moods will be an array containing all values of the meta key 'mood'
      $stored_moods = get_post_meta( $post_id, 'mood' );
      //$stored_listening_to will be the first value of the key 'listening_to'
      $stored_listening_to = get_post_meta( $post_id, 'listening_to', 'true' );

      //Now we need a nice ouput format, so that
      //the user can implement it how he/she wants:
      //ie. echo mood_music( $post->ID, 'get' );
      
      $return = '<div class='mood-music'>';
      if ( ! empty( $stored_moods ) )
        $return .= '<strong>Current Mood</strong>: ';
      foreach( $stored_moods as $mood )
        $return .= $mood . ', ';
      $return .= '<br/>';

      if ( ! empty( $stored_listening_to ) ) {
        $return .= '<strong>Currently Listening To</strong>: ';
        $return .= $stored_listening_to;
        }
      $return .= '</div>';
      
      return $return;
    default :
      return false;
    break;
  } //end switch
} //end function
?>


 

تاریخ آخرین بروزرسانی : ۷ مرداد ۱۳۹۵
میلاد میلادی

باور هایت را که پرورش دهی به هرچیزی دست خواهی یافت.

ارسال نظر

آدرس الکترونیکی شما نمایش داده نمی شود *

Time limit is exhausted. Please reload CAPTCHA.