Example #1
0
function tool_sprachwechselmenu($p = array())
{
    $p += array('replace' => array(), 'show_current_lang' => false, 'class_wrap' => 'menu-lang absolute', 'class_link' => 'diblock menu-lang-item sprite sprite-flagge-{id} font');
    global $wpdb, $post;
    $blog_list = $wpdb->get_results("SELECT * FROM {$wpdb->blogs}");
    $current_blog_id = get_current_blog_id();
    $ret = '';
    $ret .= '<div class="' . $p['class_wrap'] . '">';
    foreach ($blog_list as $blog) {
        $site = $GLOBALS['toolset']['sites'][$blog->blog_id];
        //$link = get_permalink( $post->ID );
        $obj = get_field('lang_' . $site['id']);
        if (isset($obj->ID) || $p['show_current_lang'] === true && $current_blog_id == $blog->blog_id) {
            tool_switch_to_blog((int) $blog->blog_id);
            /* get_permalink() ignores rewrite slug from register_post_type()
               thats why some slugs has to be replaced here. */
            $link = false;
            if (isset($obj->ID)) {
                $link = strtr(get_permalink($obj->ID), $p['replace']);
            }
            tool_restore_blog();
            $class = strtr($p['class_link'], array('{id}' => $site['id']));
            if ($link) {
                $ret .= '<a class="' . $class . '" href="' . @$link . '">' . $site['name'] . '</a>';
            }
            if (!$link) {
                $ret .= '<span class="' . $class . '">' . $site['name'] . '</span>';
            }
        }
    }
    $ret .= '</div>';
    return $ret;
}
<?php

/* SPRACHMENU */
$blog_list = $wpdb->get_results("SELECT * FROM {$wpdb->blogs}");
/* get_permalink() ignores rewrite slug from register_post_type()
	   thats why these slugs has to be replaced.
	*/
$replace['de'] = array('/products/' => '/produkte/');
$replace['en'] = array('/produkte/' => '/products/');
foreach ($blog_list as $blog) {
    $site = $GLOBALS['toolset']['sites'][$blog->blog_id];
    $link[$site['id']] = get_permalink($post->ID);
    $obj_id = get_field('lang_' . $site['name'], false, false);
    if (isset($obj_id)) {
        tool_switch_to_blog((int) $blog->blog_id);
        $link[$site['id']] = strtr(get_permalink($obj_id), $replace[$site['id']]);
        tool_restore_blog();
    }
}
echo '<div class="menu-lang">';
echo '<a class="diblock menu-lang-item sprite sprite-flagge-de" href="' . @$link['de'] . '">Deutsch</a>';
echo '<a class="diblock menu-lang-item sprite sprite-flagge-en" href="' . @$link['en'] . '">English</a>';
echo '</div>';