ساخت افزونه کوتاه کننده لینک برای وردپرس

کوتاه کردن URL یک تکنیک است که در آن یک آدرس به طور قابل ملاحظه در اندازه ی کوتاه تری ساخته می شود و همچنان به صفحه ی مورد نظر پیوند می دهد.

این کار با استفاده از تغییر مسیر نام دامنه به یک مسیر کوتاه تر، که خود به صفحه ای با آدرس طولانی تر لینک می دهد انجام می شود.در این مقاله ما به شما آموزش می دهیم که چگونه به کمک کوتاه کننده ی لینک API() گوگل افزونه ای با این قابلیت ایجاد کنید.

 

چرا به لینک های کوتاه شده احتیاج داریم؟

قبل از اینکه ساخت این افزونه را آغاز کنیم ابتدا نگاهی بیندازیم به این که چرا و چه زمانی به لینک های کوتاه شده نیازمندیم؟  در برخی از صفحات اجتماعی برای ارسال پیام با محدودیت حروف مواجهیم، تصور کنید بخواهیم به پیاممان لینکی را هم اضافه کنیم، چه اتفاقی رخ می دهد؟!!! قسمت قابل توجهی از فضای شما به همین سادگی اشغال می شود. درکتاب های چاپ شده معمولا از آدرس هایی استفاده می شود که خوانا و قابل فهم باشند.کدهای QR محدودیت کاراکتر دارند، بدین معنی که آدرس های بلند را نمی پذیرند و به این شکل ابزاری برای کوتاه کردن لینک ها مورد نیاز است.

 

دست یابی به کوتاه کننده لینک  API گوگل(Google URL Shortener API )

برای استفاده از کوتاه کننده ی لینک API، ابتدا باید یک کد API داشته باشیم. گوگل از این کد استفاده می کند تا درخواست مختصر سازی شما را پیگیری کند. برای دریافت این کد مراحل زیر را قدم به قدم انجام دهید:

  1. به کنسول توسعه دهندگان گوگل مراجعه کنید.
  2. پروژه ای جدید بسازید یا یک پروژه ی موجود را انتخاب کنید.
  3. در منوی سمت چپ بر روی APIs & auth کلیک کنید و صفحه ی آن را باز کنید.
  4. سپس روی APIs کلیک کرده و مطمئن شوید وضعیت Google URL Shortener API روی حالت on  تنظیم شده باشد.
  5. در منوی سمت چپ گزینه ی Credentials را انتخاب کنید؛ سپس برای خود یک کد دسترسی بسازید. این کد دسترسی همان API  نام دارد.

 

آدرس ها و فایل های افزونه

این افزونه تنها شامل یک آدرس و یک فایل می باشد، url-shortener  و url-shortener.php.

پیشنهاد می کنیم   اختصاص عکس برای دسته بندی های وردپرس با افزونه Category Featured Images

برای نصب افزونه، کد زیر را در فایل url-shortener.php قرار دهید:

 

<?php
/*

Plugin Name: URL Shortener

Plugin URI: https://www.sitepoint.com

Description: Create's a Shortened URL of every post.

Version: 1.0

Author: Narayan Prusty

*/

 

ساخت صفحه ی تنظیمات افزونه

ما باید صفحه ای برای تنظیمات افزونه ی خود ایجاد کنیم که مدیر سایت بتواند در آن کد API را وارد کند. در اینجا کد ایجاد صفحه تنظیمات را باهم مرور می کنیم.

 

<?php

function url_shortener_settings_page()
{
    add_settings_section("section", "Enter Key Details", null, "url-shortener");
    add_settings_field("url-shortener-input-field", "API Key", "url_shortener_input_field_display", "url-shortener", "section");  
    register_setting("section", "url-shortener-input-field");
}

function url_shortener_input_field_display()
{
   ?>
        <input type="text" name="url-shortener-input-field" value="<?php echo get_option('url-shortener-input-field'); ?>" /> 
   <?php
}

add_action("admin_init", "url_shortener_settings_page");

function url_shortener_page()
{
  ?>
      <div class="wrap">
         <h1>URL Shortener Setting</h1>
  
         <form method="post" action="options.php">
            <?php
               settings_fields("section");
               do_settings_sections("url-shortener");
               submit_button(); 
            ?>
         </form>
      </div>
   <?php
}

function menu_item()
{
  add_submenu_page("options-general.php", "URL Shortener", "URL Shortener", "manage_options", "url-shortener", "url_shortener_page"); 
}
 
add_action("admin_menu", "menu_item");

به وسیله ی این کد، ما کد API را به عنوان گزینه ی کوتاه کننده ی لینک در صفحه تنطیمات ذخیره کردیم.اکنون انتظار داریم صفحه ی تنظیمات باید این طور به نظر برسد:

بررسی اجمالی کوتاه کننده ی لینک گوگل

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

نمونه ی یک متن درخواست:

 

POST httpss://www.googleapis.com/urlshortener/v1/url

Content-Type: application/json

 {"longUrl": "https://www.sitepoint.com/"}

 

نمونه ی متن جوابی:

{ 

"kind": "urlshortener#url",

 "id": "https://goo.gl/fqsT",

 "longUrl": "https://www.sitepoint.com/"

}

توجه داشته باشید که نمی توانید بیشتر از ۱ میلیون درخواست مختصرسازی به این آدرس بفرستید.

 

نمایش آدرس کوتاه در meta bax

در این قسمت می خواهیم آموزش دهیم که چطور لینک مختصر شده را در یک meta box در صفحه ویرایشگر پست مشاهده کنید.برای ساخت یک meta box از API متاباکس استفاده میکنیم و برای کوتاه کردن لینک از HTTP API

کد نمایش لینک کوتاه در meta box:

function url_shortener_meta_box_markup($object)
{
	$key = get_permalink($object->ID);

	if(get_option('url-shortener-input-field', '') != "")
	{
		if(get_option($key, "") != "")
		{
			echo get_option($key, "");
			return;
		}

		$url = 'httpss://www.googleapis.com/urlshortener/v1/url';
		
		$result = wp_remote_post(
			add_query_arg(
				'key', 
				get_option('url-shortener-input-field'), 
				'httpss://www.googleapis.com/urlshortener/v1/url'
			), 
			array(
				'body' => json_encode(array('longUrl' => esc_url_raw($key))),
				'headers' => array( 'Content-Type' => 'application/json')
			)
		);

		if(is_wp_error($result)){echo "Error"; return;}

		$result = json_decode($result['body']);
		$shortlink = $result->id;

		update_option($key, $shortlink);

		echo $shortlink;
	}
}

function url_shortener_meta_box()
{
    add_meta_box("url-shortener-meta-box", "Shorten URL", "url_shortener_meta_box_markup", "post", "side", "default", null);
}

add_action("add_meta_boxes", "url_shortener_meta_box");

 

این کد ها به این صورت تغییرات اعمال می کنند:

به کمک تابع add_meta_box  یک متاباکس ساختیم.

پیشنهاد می کنیم   تغییر متن " ادامه مطلب " در وردپرس

آدرس های طولانی را به کمک تابع get_permalink() بازیابی کردیم.

سپس چک می کنیم که آیا از قبل آدرس کوتاهی برای این آدرس بلند در پایگاه داده ی سایت موجود است یا خیر، اگر چنین آدرسی موجود است از آن استفاده می کنیم ؛ در غیر این صورت آن را می سازیم.

Meta box ساخته شده در ویرایشگر متن به این صورت نمایش داده می شود:

 

 

همچنین ممکن است که بخواهیم لینک کوتاه هر پست زیر آن پست نمایش داده شود.

در اینجا کد مربوط به این ویژگی را مشاهده می کنیم:

function url_shortener_content_filter($content)
{
	if($GLOBALS['post']->post_type != "post")
		return;

	$key = get_permalink($GLOBALS['post']->ID);

	if(get_option('url-shortener-input-field', '') != "")
	{
		if(get_option($key, "") != "")
		{
			$content = $content . "<p><b>Shortern URL: </b>" . get_option($key, "") . "</p>";
			return $content;
		}

		$url = 'httpss://www.googleapis.com/urlshortener/v1/url';
		
		$result = wp_remote_post(
			add_query_arg(
				'key', 
				get_option('url-shortener-input-field'), 
				'httpss://www.googleapis.com/urlshortener/v1/url'
			), 
			array(
				'body' => json_encode(array('longUrl' => esc_url_raw($key))),
				'headers' => array( 'Content-Type' => 'application/json')
			)
		);

		if(is_wp_error($result)){echo "Error"; return;}

		$result = json_decode($result['body']);
		$shortlink = $result->id;

		update_option($key, $shortlink);

		$content = $content . "<p><b>Shortern URL: </b>" . $shortlink . "</p>";
	}	

	return $content;
}

add_filter("the_content", "url_shortener_content_filter");

 

در این مرحله دقیقا با این کدها همان کارهایی را می کنیم که برای نمایش لینک کوتاه در meta box انجام دادیم. تنها با این تفاوت که به جای انعکاس آن، به الحاق آن به محتوای پست می پردازیم.در نهایت لینک کوتاه به این صورت نمایش داده می شود:

 

ساخت افزونه ی شگفت انگیز کوتاه کننده لینک برای ورد پرس به پایان رسید!!

 

افزونه های دیگر  و معروف مختصرسازی لینک

اگر مایلید که با افزونه های موجود دیگری آشنا شوید ۲ افزونه از مشهورترین ها در این زمینه را به شما معرفی می کنیم WP URL Shorten. و URL Shortener

اولین افزونه از  سرویس ref.li برای کوتاه کردن لینک ها استفاده می کند و دومین افزونه به شما اجازه می دهد بین Bit.lySu.prYOURLSGoo.gl و بسیاری سرویس های دیگر خودتان انتخاب کنید(نام این سرویس ها در کد کوتاه شده شما به عنوان یک بخش اصلی وجود دارد مانند https://Goo.gl/urDirectory)

 

نتیجه گیری:

در این مقاله به شما نشان دادیم که چگونه به سادگی افزونه ی مختصرسازی آدرس را خودتان برای سایت وردپرسی خود بسازید، اکنون به راحتی به سراغ این افزونه بروید و کدهای QR بسازید، از مزیت های دیگر لینک کوتاه استفاده کنید و لذت ببرید!

مطالب مرتبط

دیدگاه ها

  • حسین ۲۳ مهر ۱۳۹۵ :: ۵:۰۷
    0 0

    سلام
    میشه از این سایت ۲yjc.ir هم بگید چجور میشه پلاگن درست کرد ؟

    • اسماعیل ابراهیمی ۲۳ مهر ۱۳۹۵ :: ۵:۳۲
      0 0

      خیر – به خاطر زمانبر بودن امکانش نیست

      • حسین ۲۳ مهر ۱۳۹۵ :: ۵:۵۴
        0 0

        این سایت api مشخصی داره
        ۲yjc.ir/developer
        میشه یه نگاه کوچیک بکنید که با جایگذاری ساده امکان تبدیل وجود داره یا خیر؟

        • اسماعیل ابراهیمی ۲۴ مهر ۱۳۹۵ :: ۶:۵۷
          0 0

          بررسی کردم – زمانبر هست دوست عزیز

  • javad ۲۷ آبان ۱۳۹۵ :: ۴:۲۴
    0 0

    بسیار عالی

    فقط اگر بخواهیم از API کاستوم و تابع ارسال به صورت GET باشه باید چه تغییری ایجاد کنم؟

    • اسماعیل ابراهیمی ۲۷ آبان ۱۳۹۵ :: ۵:۴۲
      0 0

      دوست عزیز فکر نمی کنم امکانش باشه
      برای اطمینان در سایت developer.google.com سرچ کنید

      • javad ۲۷ آبان ۱۳۹۵ :: ۹:۵۰
        0 0

        توی مطلبی که ترجمه کردید (httpss://l7l.ir/pJt) یه بخشی هست که در مورد HTTP وردپرس توضیح داده شده (httpss://l7l.ir/q6L5H)

        ممنون میشم اون رو هم ترجمه کنید و به این مطلب لینک بدید

        و دوباره بابت وقتی که برتی کاربراتون میزارید تشکر میکنم

        • اسماعیل ابراهیمی ۱ آذر ۱۳۹۵ :: ۷:۳۶
          0 0

          لینکتون اشتباهه دوست عزیز

  • کوتاه کننده لینک ۱ مهر ۱۳۹۶ :: ۵:۰۳
    1 0

    با سلام ممنونم از وب سایت عالیتون

ارسال دیدگاه

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