WordPress Автогенерированные «канонические» ссылки - как добавить пользовательский параметр URL?

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

Вопрос

Кто -нибудь знает, как изменить канонические ссылки WordPress, чтобы добавить пользовательский параметр URL?

У меня есть сайт WordPress со страницей, которая запрашивает отдельную (не условную) базу данных. Я прошел параметр URL «Pubid», чтобы отобразить отдельные книги, и он работает нормально.

Пример: http://www.uglyduckpresse.org/catalog/browse/item/?pubid=63

Но отдельные страницы книги не отображаются должным образом в Google - параметр? Pubid вырезан.

Я думаю, что, может быть, это потому, что все страницы элементов имеют одинаковую автоматическую «каноническую» бирку URL -адреса в источнике - один с параметром «Pubid», разделенного.

Пример: ссылка rel = 'canonical' href = 'http://www.uglyduckpresse.org/catalog/browse/item/'

Есть ли способ, возможно, отредактировать .htaccess, чтобы добавить пользовательский параметр URL в WordPress, чтобы параметр не был вырезан по постоянным ссылкам и «каноническим» ссылкам?

Или, может быть, есть другое решение ... спасибо за любые идеи!

Это было полезно?

Решение

Вы должны быть в состоянии заменить 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