رفتن به مطلب

مشکل پیوند های یکتا


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

سلام به همگی!

بعد از تغییر نوع لینک پیوند یکتا از ساده به نام نوشته یا هر گزینه دیگه حروف فارسی تو قسمت آدرس بار به علامت سوال تبدیل میشه و میره تو پیج 404!

ssss.thumb.jpg.33a8aeeeeab8fccaec2f5e637658b1c3.jpg

این حالتی هست که روی نام نوشته قرار دادم به علامت سوال تبدیل میشه و به 404 میرسه:

gg.jpg.b9c3ec0e214700a1923797965ae88534.jpg

ggggg.jpg.f0efc605d11f4a05c7b17b213b39d043.jpg

و این حالت لینک ساده ست که بدون اخطار 404 هست و صفحه درست نشون میده:

ggg.jpg.4b0c54a7ff6ee4d371eca98013f2520e.jpg

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

gggg.jpg.36a9b58afa9b0d680289e1b1c7354734.jpg ولی وقتی روی لینک کلیک میکنم و میخواد صفحه رو لود کنه حروف فارسی به علامت سوال تبدیل میشه.

 

افزونه های Change Permalink Helper، Longer Permalinks، رو هم نصب کردم!

کد زیر و هم انتهای فانکشن قالب قرار دادم و حتی از لینک   https://yoast.com/research/permalink-helper.php هم برای ایجاد کد ریدایرکت توی فایل htacces هم استفاده کردم ولی باز مشکل پابرجاست.

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

add_filter( 'sanitize_title', 'wpse52690_limit_length', 1, 3 );

function wpse52690_limit_length( $title, $raw_title, $context ) {
    //  filters
    if( $context != 'save' )
        return $title;

    //  vars
    $desired_length = 20; //number of chars
    $desired_words = 5; //number of words
    $prohibited = array(
        'the'
        ,'in'
        ,'my'
        ,'etc'
        //put any more words you do not want to be in the slug in this array
    );

    //  do the actual work
    // filter out unwanted words
    $_title = explode( ' ', $title );
    //if you want more than one switch to preg_split()
    $_title = array_diff( $_title, $prohibited );
    // count letters and recombine
    $new_title = '';
    for( $i=0, $count=count($_title); $i<$count; $i++ ) {
        //check for number of words
        if( $i > $desired_words )
            break;
        //check for number of letters
        if( mb_strlen( $new_title.' '.$_title[$i] ) > $desired_length )
            break;

        if( $i != 0 )
            $new_title .= ' ';
        $new_title .= $_title[$i];
    }

    return $new_title;
}

 

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

سلام به همگی!

بعد از تغییر نوع لینک پیوند یکتا از ساده به نام نوشته یا هر گزینه دیگه حروف فارسی تو قسمت آدرس بار به علامت سوال تبدیل میشه و میره تو پیج 404!

ssss.thumb.jpg.33a8aeeeeab8fccaec2f5e637658b1c3.jpg

این حالتی هست که روی نام نوشته قرار دادم به علامت سوال تبدیل میشه و به 404 میرسه:

gg.jpg.b9c3ec0e214700a1923797965ae88534.jpg

ggggg.jpg.f0efc605d11f4a05c7b17b213b39d043.jpg

و این حالت لینک ساده ست که بدون اخطار 404 هست و صفحه درست نشون میده:

ggg.jpg.4b0c54a7ff6ee4d371eca98013f2520e.jpg

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

gggg.jpg.36a9b58afa9b0d680289e1b1c7354734.jpg ولی وقتی روی لینک کلیک میکنم و میخواد صفحه رو لود کنه حروف فارسی به علامت سوال تبدیل میشه.

 

افزونه های Change Permalink Helper، Longer Permalinks، رو هم نصب کردم!

کد زیر و هم انتهای فانکشن قالب قرار دادم و حتی از لینک   https://yoast.com/research/permalink-helper.php هم برای ایجاد کد ریدایرکت توی فایل htacces هم استفاده کردم ولی باز مشکل پابرجاست.

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


add_filter( 'sanitize_title', 'wpse52690_limit_length', 1, 3 );

function wpse52690_limit_length( $title, $raw_title, $context ) {
    //  filters
    if( $context != 'save' )
        return $title;

    //  vars
    $desired_length = 20; //number of chars
    $desired_words = 5; //number of words
    $prohibited = array(
        'the'
        ,'in'
        ,'my'
        ,'etc'
        //put any more words you do not want to be in the slug in this array
    );

    //  do the actual work
    // filter out unwanted words
    $_title = explode( ' ', $title );
    //if you want more than one switch to preg_split()
    $_title = array_diff( $_title, $prohibited );
    // count letters and recombine
    $new_title = '';
    for( $i=0, $count=count($_title); $i<$count; $i++ ) {
        //check for number of words
        if( $i > $desired_words )
            break;
        //check for number of letters
        if( mb_strlen( $new_title.' '.$_title[$i] ) > $desired_length )
            break;

        if( $i != 0 )
            $new_title .= ' ';
        $new_title .= $_title[$i];
    }

    return $new_title;
}

 

سلام

ممکنه مشکل از دیتابیس سایت باشه بررسی کنید که utf-8 باشه

 

لینک به ارسال

سلام

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

ممکنه از تداخل در افزونه‌ها هم باشه

باید اینها رو هم بررسی کنین

لینک به ارسال

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

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

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

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

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

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

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

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

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