WordPress روابط "Enonical" التي تم إنشاؤها تلقائيا - كيفية إضافة معلمة URL مخصصة؟

StackOverflow https://stackoverflow.com/questions/2430623

سؤال

هل يعرف أحد كيفية تعديل روابط WordPress Canonical لإضافة معلمة URL مخصصة؟

لدي موقع WordPress مع صفحة استفسر قاعدة بيانات منفصلة (غير وورد). مررت بمعلمة URL "Pubid" لعرض الكتب الفردية ويعمل موافق.

مثال: http://www.uglyducklingpresse.org/catalog/browse/item/؟pubid=63.

لكن صفحات الكتاب الفردية لا تظهر بشكل صحيح في Google - يتم تجريد المعلمة PubID؟

أعتقد أن هذا هو أن جميع صفحات البند لديها نفس علامة رابط عنوان URL الذي تم إنشاؤه تلقائيا في المصدر - واحد باستخدام المعلمة "pubid" جردت.

مثال: Link REL = "Canonical" Href = 'http://www.uglyducklingpresse.org/catalog/browse/item/'

هل هناك طريقة لربما تحرير .htaccess لإضافة معلمة عنوان URL مخصص إلى WordPress، بحيث لا يتم تجريد المعلمة بواسطة الرابط الثابت والروابط "الكنسي"؟

أو ربما هناك حل آخر ... شكرا لك على أي أفكار!

هل كانت مفيدة؟

المحلول

يجب أن تكون قادرا على استبدال وورد rel_canonical وظيفة العمل مع وظيفتك الخاصة حيث (عندما تلبي شروطك) يمكنك إنشاء رابط واضح إلحاق متغير سلسلة الاستعلام. يجب أن تعمل ما يلي، على الرغم من أنك ربما تحتاج إلى تغيير الظروف لتلبية احتياجاتك.

remove_action('wp_head', 'rel_canonical');
add_action('wp_head', 'my_rel_canonical');

function my_rel_canonical() {
    if (is_page('item') && isset($_GET['pubID'])) {
        global $post;
        $link = get_permalink($post->ID) . '?pubID=' . absint($_GET['pubID']);
        echo "<link rel='canonical' href='$link' />\n";
    } else {
        rel_canonical();
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top