امین بهشتی

Design Tutorials

طراحی وِب و گرافیک

تغییر پیغام نوشته‌های حفاظت شده در وردپرس

وقتی یک نوشته را در وردپرس در حالت حفاظت شده منتشر می‌کنید، پیغامی که برای این نوع نوشته‌ها بطور پیش‌فرض به نمایش درمی‌آید معمولاً آن چیزی نیست که خودمان می‌خواهیم!!! در این آموزش شما را با روشی ساده و سریع  آشنا خواهم کرد تا براحتی بتوانید این پیغام را به پیغام دل‌خواه خودتان تغییر دهید.

این نکته را در نظر داشته باشید که آموزش زیر نحوه تغییر این متن را در قالب یک افزونه برای وردپرس شرح می‌دهد اما شما براحتی می‌توانید کدهای اشاره شده زیر را در فایل functions.php پوسته خود قرار دهید.

مرحله اول

ابتدا در پوشه مربوط به افزونه‌های سایت ورپرسی‌تان یک پوشه جدید ایجاد کنید و یک نام دل‌خواه به آن بدهید. من نام protected-text را انتخاب می‌کنم.

پوشه افزونه‌ها در مسیر زیر قرار دارد :

../wp-content/plugins/

مرحله دوم

یک فایل php با نام protected-text.php داخل پوشه‌ای که در مرحله قبل درست کردیم، ایجاد می‌کنیم و اطلاعات زیر را در ابتدای آن وارد می‌کنیم.

<?php
/*
Plugin Name: Password Protected Text
Plugin URI: http://code.tutsplus.com
Description: This plugin changes the default password protected text.
Version: 1.0
Author: code.tutsplus.com
Author URI: http://code.tutsplus.com
*/

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

مرحله سوم

بخش اول کد 2 مورد را بررسی می‌کند:

  1. آیا نوشته حفاظت شده است یا نه
  2. آیا در حال حاضر یک cookie ذخیره شده از یک ورود موفقیت‌آمیز قبلی وجود دارد یا نه
function password_protected_change( $content ) {
  global $post;
  if ( ! empty( $post->post_password ) && stripslashes( $_COOKIE['wp-postpass_'.COOKIEHASH] ) != $post->post_password ) {

مرحله چهارم

در صورتی که نوشته حفاظت شده باشد و cookie موجود نباشد، فرم ورود رمز را نمایش می‌دهد. این افزونه کل تابع حفاظت را بازنویسی می‌کند بنابراین باید هم فرم و هم پیغام دل‌خواه خود را اضافه کنیم.

  $output = '
 
  <form action="' . get_option( 'siteurl' ) . '/wp-pass.php" method="post">
    '.__( "پیغام دلخواه خود را اینجا وارد کنید" ).'
 
      <label for="post_password">رمز:</label>
      <input name="post_password" class="input" type="password" size="20" />
      <input type="submit" name="Submit" class="button" value="' . __( "بفرست" ) . '" />
 
  </form>
 
  ';
  return $output;
}

مرحله پنجم

یک حکم else نیز وجود دارد تا اگر نوشته محافظت شده نباشد و یا یک cookie از ورود موفقت‌آمیز قبلی موجود باشد، بداند چه عملی را انجام دهد که در این مثال محتوای نوشته را نمایش می‌دهد.

} else {
    return $content;
}

مرحله ششم

مرحله آخر این است که به وردپرس بگوییم زمان نمایش هر محتوایی، از تابع ما استفاده کند و این کار بسادگی با یک فرمان add_filter امکان‌پذیر می‌باشد.

add_filter( 'the_content','password_protected_change' );

در آخر کدهای فایل protected-text.php بصورت زیر خواهد بود:

<?php
/*
Plugin Name: Password Protected Text
Plugin URI: http://code.tutsplus.com
Description: This plugin changes the default password protected text.
Version: 1.0
Author: code.tutsplus.com
Author URI: http://code.tutsplus.com
*/

function password_protected_change( $content ) {
  global $post;
  if ( ! empty( $post->post_password ) && stripslashes( $_COOKIE['wp-postpass_'.COOKIEHASH] ) != $post->post_password ) {
    $output = '
  
  <form action="' . get_option( 'siteurl' ) . '/wp-pass.php" method="post">
    '.__( "پیغام دلخواه خود را اینجا وارد کنید" ).'
  
      <label for="post_password">رمز:</label>
      <input name="post_password" class="input" type="password" size="20" />
      <input type="submit" name="Submit" class="button" value="' . __( "بفرست" ) . '" />
  
  </form>
  
  ';
  return $output;
	} else {
	    return $content;
	}
}
add_filter( 'the_content','password_protected_change' );

 و به این سادگی شما یک افزونه ساختید که می‌تواند پیغام نوشته‌های حفاظت شده را به پیغام دل‌خواه شما تغییر دهد!

منبع : code.tutsplus.com

درباره امین بهشتی

یک ایرانی ترک زبان که علاقه زیادی به طرّاحی وِب و گرافیک دارد!
در این سایت سعی می‌کنم مطالب جالب، مفید و کاربردی را در جهت آموزش به اشتراک بگذارم!
امیدوارم لحظات خوشی را در سایت سپری نمایید و مطالب سایت مورد استفاده شما قرار بگیرد.
سپاس

درصورت تمایل برای ارسال دیدگاه‌تان از فرم زیر می‌توانید استفاده کنید ↓

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

(الزامی*)

می‌توانید از نشان و برچسب‌های HTML زیر در متن دیدگاه‌تان استفاده کنید:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
(الزامی*)
(اختیاری)

لطفاً جای‌خالی در معادله زیر را پر کنید: * Time limit is exhausted. Please reload the CAPTCHA.