رفتن به مطلب

نوفالو کردن لینک از یک سایت مشخص


Boshiant

پست های پیشنهاد شده

دوستان سلام

یه سوال دارم

من لینک‌های زیادی از پیکوفایل در سایتم دارم. راهنمایی میکنید از طریق robots.txt یا htaccess یا هر روش استاندارد دیگه‌ای، به گوگل بگم هرجا لینک پیکوفایل رو دید نوفالو درنظر بگیره؟ چون بخوام دونه دونه نوفالو کنم خیلی زیاده. 

لینک به ارسال

من در رابطه با اینکه کدی در Htaccess یا robots بتونه اینکارو بکنه یا نه اطلاعی ندارم. ولی بهترین کار اینه که لینک توی خود سورس صفحه نوفالو باشه. 

 برای اینهکه در صفحه نوفالو بشه هم یا بصورت دستی باید انجام بشه یا افزونه استفاده کنید. افزونه های زیادی برای نوفالو کردن لینکهای خروجی از سایت وجود دارن. یه سرچ بزنید توی مخزن وردپرس پیدا میکنید. نمونه  : wp-external-link

لینک به ارسال

اون افزونه همه لینک های خروجی رو نوفالو میکنه

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

لینک به ارسال
در 14 ساعت قبل، Boshiant گفته است :

دوستان سلام

یه سوال دارم

من لینک‌های زیادی از پیکوفایل در سایتم دارم. راهنمایی میکنید از طریق robots.txt یا htaccess یا هر روش استاندارد دیگه‌ای، به گوگل بگم هرجا لینک پیکوفایل رو دید نوفالو درنظر بگیره؟ چون بخوام دونه دونه نوفالو کنم خیلی زیاده. 

سلام. وقت بخیر. درست ترین کار اینه که لینکها رو دستی ویرایش کنید. کد زیر رو تست کنید:

<?php
/**
 * Add "nofollow" to picofile external links
 */
function wpse_254317_nofollow( $content ) {
    $domain = "https://www.picofile.com";

    preg_match_all( '~<a.*>~isU', $content, $matches );

    for ( $i = 0; $i <= count( $matches[0] ); $i ++ ) {
        if ( isset( $matches[0][ $i ] ) && ! preg_match( '~nofollow~is', $matches[0][ $i ] )
             && ( preg_match( '~' . preg_quote( $domain ) . '~', $matches[0][ $i ] )
                  || ! preg_match( '~' . get_bloginfo( 'url' ) . '~', $matches[0][ $i ] ) )
        ) {
            $result = trim( $matches[0][ $i ], ">" );
            $result .= ' rel="nofollow">';
            $content = str_replace( $matches[0][ $i ], $result, $content );
        }
    }

    return $content;
}

add_filter( 'the_content', 'wpse_254317_nofollow' );

// The code goes to your active theme(or child theme) functions.php file.

کد بالا، هر بار که محتوایی نمایش داده میشه لینکهای پیکوفایل رو نوفالو میکنه که چون از regex استفاده میکنه، روی پرفورمنس یه تاثیر جزئی داره که احتمالا اصلا ملموس نخواهد بود. بهر حال برای اینکه کار تمیزی در بیاد یا باید دستی لینکها رو ویرایش کنید و یا اینکه این کد رو به یه توسعه دهنده وردپرس بدید و دو راه برای حل مسئله هست:

1- یه cronjob برای همین کد بنویسه که همه مطالب رو ویرایش کنه به مرور و دیگه این کد زمانی که کاربر داره با سایت کار میکنه اجرا نشه.

2- همین کد رو تغییر بدن که فقط یکبار برای هر مطلب اجرا بشه، در وافع اولین باری که یه محتوا نمایش داده شد خروجی این کد رو ذخیره کنید داخل دیتابیس

لینک به ارسال
در 13 ساعت قبل، yazdaniwp گفته است :

سلام. وقت بخیر. درست ترین کار اینه که لینکها رو دستی ویرایش کنید. کد زیر رو تست کنید:


<?php
/**
 * Add "nofollow" to picofile external links
 */
function wpse_254317_nofollow( $content ) {
    $domain = "https://www.picofile.com";

    preg_match_all( '~<a.*>~isU', $content, $matches );

    for ( $i = 0; $i <= count( $matches[0] ); $i ++ ) {
        if ( isset( $matches[0][ $i ] ) && ! preg_match( '~nofollow~is', $matches[0][ $i ] )
             && ( preg_match( '~' . preg_quote( $domain ) . '~', $matches[0][ $i ] )
                  || ! preg_match( '~' . get_bloginfo( 'url' ) . '~', $matches[0][ $i ] ) )
        ) {
            $result = trim( $matches[0][ $i ], ">" );
            $result .= ' rel="nofollow">';
            $content = str_replace( $matches[0][ $i ], $result, $content );
        }
    }

    return $content;
}

add_filter( 'the_content', 'wpse_254317_nofollow' );

// The code goes to your active theme(or child theme) functions.php file.

کد بالا، هر بار که محتوایی نمایش داده میشه لینکهای پیکوفایل رو نوفالو میکنه که چون از regex استفاده میکنه، روی پرفورمنس یه تاثیر جزئی داره که احتمالا اصلا ملموس نخواهد بود. بهر حال برای اینکه کار تمیزی در بیاد یا باید دستی لینکها رو ویرایش کنید و یا اینکه این کد رو به یه توسعه دهنده وردپرس بدید و دو راه برای حل مسئله هست:

1- یه cronjob برای همین کد بنویسه که همه مطالب رو ویرایش کنه به مرور و دیگه این کد زمانی که کاربر داره با سایت کار میکنه اجرا نشه.

2- همین کد رو تغییر بدن که فقط یکبار برای هر مطلب اجرا بشه، در وافع اولین باری که یه محتوا نمایش داده شد خروجی این کد رو ذخیره کنید داخل دیتابیس

سپاس از این که وقت گذاشتید. ازش استفاده میکنم و نتیجه رو اعلام می‌کنم مهندس

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...