Polylang Plugin translated get_page_link

Das Plugin Polylang zum Übersetzen von WordPress Blogs hat für Posts/Pages für jede Sprache eine andere ID. Dies führt dazu, dass auch nach dem Umstellen der Sprache, mit der standard WordPress Funktion zum Umwandeln von Ids zu Links, get_page_link($id) der Link in der Standardsprache zurückgegeben wird. All diese Links auf pll_get_post($id) umzustellen ist eine Arbeit die man sich mit meinem Hook ersparen kann.

In functions.php des gewählten Themes:

//
// Show link of translated post/page id with get_page_link($id) and polylang plugin.
//
function getPageLinkTranslated( $post = false, $leavename = false, $sample = false ) {    
    $post = pll_get_post(url_to_postid($post)); //rewrite id to id of correct language!
    
    $post = get_post( $post );

    if ( 'page' == get_option( 'show_on_front' ) && $post->ID == get_option( 'page_on_front' ) )
            $link = home_url('/');
    else
            $link = _get_page_link( $post, $leavename, $sample );

    return $link;
}
add_filter('page_link', 'getPageLinkTranslated');

Kommentare

Eine Antwort zu „Polylang Plugin translated get_page_link“

  1. sauber, danke!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert