Заменяем название ссылки в меню на значение из произвольного поля .

Часто необходимо менять оригинальное название на альтернативное  , при том что это поле используется не только для меню .

add_filter("walker_nav_menu_start_el", 'altancor', 10, 4);

function altancor($item_output, $item, $depth, $args) {

    $reg = "/<a[^>]*?>(.*?)<\/a>/is";

    $result = null;
    preg_match($reg, $item_output, $result);

    $newAncore = "";
    if ($item->object == "post" && isset($result[1])){
        $newAncore = get_post_meta($item->object_id, "_alt_ancor", true);
        if (!empty($newAncore)) {
            $item_output = str_replace($result[1], $newAncore, $item_output);
        }
    }

    //if ($item->object == "category") {
        
    //}

    //$item_output.= "<!-- $newAncore  " . print_r($result, true) . "--->";

    return $item_output;
}