Wordpress автоматически генерирует «канонические» ссылки - как добавить пользовательский параметр URL? - PullRequest
2 голосов
/ 12 марта 2010

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

У меня есть сайт Wordpress со страницей, которая запрашивает отдельную (не 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, чтобы этот параметр не удалялся постоянными и "каноническими" ссылками?

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

1 Ответ

4 голосов
/ 12 марта 2010

Вы должны быть в состоянии заменить функцию действия rel_canonical в Wordpress своей собственной функцией, в которой (при выполнении ваших условий) вы создаете каноническую ссылку, добавляя переменную строки запроса. Следующее должно работать, хотя вам, вероятно, придется изменить условия в соответствии с вашими потребностями.

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();
    }
}
...