سورس کد

افزودن پیوندک (لینک کوتاه) به وردپرس بدون افزونه؛ سورس کد + ۳ روش

سورس کد افزودن پیوندک به وردپرس - طاووس وب
زمان مطالعه: ۷ دقیقهسطح: مبتدیسورس کد وردپرس
خلاصه در یک نگاه
  • پیوندک همان لینک کوتاه داخلی وردپرس است: دامنه/?p=شناسه؛ مثلاً لینک کوتاه همین مطلب tavoosweb.ir/?p=2964 است.
  • وردپرس دکمهٔ «دریافت پیوند کوتاه» را در ویرایشگر کلاسیک به‌طور پیش‌فرض پنهان کرده؛ با یک فیلتر یک‌خطی برمی‌گردد.
  • در ویرایشگر بلوک (گوتنبرگ) این دکمه وجود ندارد؛ با یک متاباکس کوچک، لینک کوتاه را کنار ویرایشگر نمایش می‌دهیم.
  • پیوندک با ریدایرکت ۳۰۱ به آدرس اصلی می‌رود؛ پس محتوای تکراری نمی‌سازد و به سئو آسیب نمی‌زند.

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

پیوندک وردپرس چیست؟

هر نوشته و برگه در وردپرس یک شناسهٔ عددی (ID) دارد. آدرس https://example.com/?p=ID همیشه به همان نوشته می‌رسد، حتی اگر نامک (Slug) یا ساختار پیوند یکتا را عوض کنید. وردپرس وقتی این آدرس را دریافت می‌کند، کاربر را با ریدایرکت ۳۰۱ به آدرس اصلی و زیبای نوشته می‌فرستد.

نحوهٔ کار پیوندک یا لینک کوتاه در وردپرس
مسیر یک پیوندک از کلیک تا صفحهٔ اصلی

مزیت‌های پیوندک:

  • کوتاه و بدون حروف فارسی درصددار؛ مناسب پیامک، تلگرام و QR کد
  • با تغییر نامک خراب نمی‌شود
  • بدون سرویس خارجی کوتاه‌کننده؛ لینک روی دامنهٔ خودتان می‌ماند و اعتماد کاربر حفظ می‌شود

نمونهٔ باکس کپی پیوندک

پیوندک همین مطلب

پیوند کوتاه این نوشته
این باکس را با روش دوم همین مطلب در ویرایشگر خودتان خواهید داشت.

روش ۱: برگرداندن دکمهٔ پیوندک در ویرایشگر کلاسیک

اگر از ویرایشگر کلاسیک استفاده می‌کنید، این کد دکمهٔ «دریافت پیوند کوتاه» را زیر عنوان نوشته برمی‌گرداند. این همان کد نسخهٔ قبلی این مطلب است:

// نمایش دوبارهٔ دکمهٔ «دریافت پیوند کوتاه» در ویرایشگر کلاسیک
add_filter( 'get_shortlink', function( $shortlink ) {
    return $shortlink;
} );

چرا یک فیلتر که «هیچ کاری نمی‌کند» دکمه را برمی‌گرداند؟ از وردپرس ۴.۴ به بعد، این دکمه فقط وقتی نمایش داده می‌شود که افزونه یا کدی روی فیلتر get_shortlink ثبت شده باشد. همین ثبت‌شدن کافی است.

روش ۲: باکس پیوندک در ویرایشگر بلوک (گوتنبرگ)

ویرایشگر بلوک اصلاً دکمهٔ پیوندک ندارد. این کد یک متاباکس کوچک در ستون کناری اضافه می‌کند که لینک کوتاه و دکمهٔ کپی را نشان می‌دهد:

add_action( 'add_meta_boxes', function() {
    add_meta_box(
        'tvs_shortlink',
        'پیوند کوتاه',
        function( $post ) {
            if ( $post->post_status !== 'publish' ) {
                echo '<p>بعد از انتشار نمایش داده می‌شود.</p>';
                return;
            }
            $url = esc_url( wp_get_shortlink( $post->ID ) );
            echo '<input type="text" readonly style="width:100%;direction:ltr" value="' . $url . '" onclick="this.select()">';
            echo '<button type="button" class="button" style="margin-top:8px"
                  onclick="navigator.clipboard.writeText(\'' . $url . '\')">کپی پیوندک</button>';
        },
        [ 'post', 'page', 'product' ],
        'side',
        'high'
    );
} );

اگر ووکامرس ندارید، 'product' را از آرایه حذف کنید یا نوع نوشتهٔ سفارشی خودتان را اضافه کنید.

روش ۳: کپی پیوندک از لیست نوشته‌ها

با این کد، زیر عنوان هر نوشته در صفحهٔ «همهٔ نوشته‌ها»، کنار گزینه‌های ویرایش و نمایش، لینک «کپی پیوندک» اضافه می‌شود:

add_filter( 'post_row_actions', 'tvs_shortlink_action', 10, 2 );
add_filter( 'page_row_actions', 'tvs_shortlink_action', 10, 2 );

function tvs_shortlink_action( $actions, $post ) {
    if ( $post->post_status === 'publish' ) {
        $url = esc_url( wp_get_shortlink( $post->ID ) );
        $actions['shortlink'] = '<a href="#" onclick="navigator.clipboard.writeText(\'' . $url . '\');this.textContent=\'کپی شد\';return false;">کپی پیوندک</a>';
    }
    return $actions;
}

این کدها را کجا قرار دهیم؟

  1. قالب فرزند (Child Theme)بهترین جا فایل functions.php قالب فرزند است؛ با به‌روزرسانی قالب اصلی، کدها پاک نمی‌شوند.
  2. افزونهٔ مدیریت کداگر قالب فرزند ندارید، افزونه‌ای مثل Code Snippets کدها را جداگانه و قابل خاموش‌کردن نگه می‌دارد.
  3. ویرایشگر پوستهٔ وردپرس را کنار بگذاریدویرایش مستقیم functions.php از پیشخوان ریسک دارد؛ یک خطای تایپی کل سایت را از دسترس خارج می‌کند. قبل از هر تغییر، نکات امنیتی وردپرس و گرفتن پشتیبان را جدی بگیرید.

اثر پیوندک روی سئو

پیوندک محتوای تکراری نمی‌سازد، چون وردپرس آن را با ریدایرکت ۳۰۱ به آدرس اصلی می‌برد و افزونه‌های سئو مثل Yoast هم تگ canonical صفحهٔ اصلی را قرار می‌دهند. اگر نمی‌خواهید تگ rel="shortlink" در کد صفحه دیده شود، این خط را اضافه کنید: remove_action( 'wp_head', 'wp_shortlink_wp_head' ); — لینک کوتاه همچنان کار می‌کند.

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

سایت وردپرسی‌تان را بدون افزونه‌های اضافه سبک نگه داریدطاووس وب امکانات موردنیاز سایت را با کد تمیز پیاده می‌کند تا سایت سریع‌تر، امن‌تر و قابل مدیریت‌تر بماند.

افزایش سرعت و سئو تکنیکال

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

پیوندک وردپرس با کوتاه‌کننده‌هایی مثل Bitly چه فرقی دارد؟

پیوندک روی دامنهٔ خود شماست و به سرویس خارجی وابسته نیست؛ اما آمار کلیک ندارد و طول آن به شناسهٔ نوشته بستگی دارد.

آیا پیوندک باعث محتوای تکراری در گوگل می‌شود؟

خیر. آدرس ?p= با ریدایرکت ۳۰۱ به پیوند یکتای اصلی هدایت می‌شود و گوگل فقط آدرس اصلی را ایندکس می‌کند.

پیوندک برای محصولات ووکامرس هم کار می‌کند؟

بله، محصول هم یک نوع نوشته است. در روش ۲، product را در آرایهٔ انواع نوشته نگه دارید.

چرا دکمهٔ دریافت پیوند کوتاه در ویرایشگر دیده نمی‌شود؟

چون از وردپرس ۴.۴ پنهان شده و در ویرایشگر بلوک اصلاً وجود ندارد. روش ۱ برای ویرایشگر کلاسیک و روش ۲ برای گوتنبرگ است.

اگر نامک نوشته را عوض کنم، پیوندک خراب می‌شود؟

خیر. پیوندک بر اساس شناسهٔ نوشته است و با تغییر نامک یا ساختار پیوند یکتا همچنان کار می‌کند.

author-avatar

درباره مهدی حبیبی

مهدی حبیبی، بنیان‌گذار طاووس وب و برنامه‌نویس فرانت‌اند با بیش از ۵ سال تجربه در طراحی سایت و بیش از ۵۰ پروژهٔ انجام‌شده. تخصصش وردپرس، المنتور، ووکامرس، سئو و بهینه‌سازی سرعت است و تجربهٔ پروژه‌های واقعی را در طاووس وب به زبان ساده آموزش می‌دهد. و البته مجنون قهوه!

دیدگاهتان را بنویسید

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