| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /tmp/ |
Upload File : |
<?php
if ( ! function_exists('pll_save_post_translations') ) { echo "pll fehlt\n"; return; }
if ( ! defined('SMI_I18N_BULK') ) define('SMI_I18N_BULK', true);
$home = home_url();
/* 0) EN-Übersetzung für „Über uns" (Seite 5) sicherstellen. */
$tr5 = pll_get_post_translations(5);
if ( empty($tr5['en']) ) {
$eid = wp_insert_post(array('post_type'=>'page','post_status'=>'publish','post_title'=>'About Us','post_name'=>'about','post_content'=>get_post(5)->post_content));
pll_set_post_language($eid,'en');
$tr5['de']=5; $tr5['en']=$eid; pll_save_post_translations($tr5);
echo "About EN -> $eid\n";
} else { $eid=$tr5['en']; echo "About EN exists -> $eid\n"; }
$about_en = $eid;
/* Helfer: EN-Permalink einer DE-Seite. */
function en_url($de_id){ $t=pll_get_post_translations($de_id); return !empty($t['en'])?get_permalink($t['en']):''; }
/* 1) DE-Menüs an Theme-Positionen hängen (Standard/Deutsch). */
$loc = array('primary'=>2,'legal'=>4,'footer'=>3);
set_theme_mod('nav_menu_locations', $loc);
/* 2) EN-Menüs anlegen (idempotent über Namen). */
function ensure_menu($name){ $m=wp_get_nav_menu_object($name); if($m) return $m->term_id; $id=wp_create_nav_menu($name); return is_wp_error($id)?0:$id; }
function clear_menu($mid){ foreach((array)wp_get_nav_menu_items($mid) as $it){ wp_delete_post($it->ID,true); } }
function add_item($mid,$title,$url,$order){ return wp_update_nav_menu_item($mid,0,array('menu-item-title'=>$title,'menu-item-url'=>$url,'menu-item-status'=>'publish','menu-item-type'=>'custom','menu-item-position'=>$order)); }
$en_main = ensure_menu('Main Menu (EN)');
$en_legal = ensure_menu('Legal (EN)');
$en_footer = ensure_menu('Footer Menu (EN)');
foreach(array($en_main,$en_legal,$en_footer) as $m){ clear_menu($m); }
$enhome = pll_home_url('en'); // .../en/home/
// Main
add_item($en_main,'Threats', $enhome.'#gefahren',1);
add_item($en_main,'Products',$enhome.'#schutz',2);
add_item($en_main,'Tools', home_url('/en/tools/'),3);
add_item($en_main,'Guides', en_url(46),4);
add_item($en_main,'About', get_permalink($about_en),5);
add_item($en_main,'VPN', en_url(33),6);
// Legal
add_item($en_legal,'Privacy Policy', en_url(6),1);
add_item($en_legal,'Imprint', en_url(7),2);
add_item($en_legal,'Terms', en_url(8),3);
// Footer
add_item($en_footer,'Security Tools', home_url('/en/tools/'),1);
add_item($en_footer,'VPN Recommendation', en_url(33),2);
add_item($en_footer,'Security Checklist', en_url(39),3);
add_item($en_footer,'About', get_permalink($about_en),4);
/* 3) Polylang: pro Sprache das richtige Menü je Position. */
$o = get_option('polylang');
$theme = get_stylesheet();
$o['nav_menus'][$theme] = array(
'primary' => array('de'=>2, 'en'=>$en_main),
'legal' => array('de'=>4, 'en'=>$en_legal),
'footer' => array('de'=>3, 'en'=>$en_footer),
);
update_option('polylang', $o);
echo "Menus: main=$en_main legal=$en_legal footer=$en_footer\n";
echo "nav_menus option set for theme '$theme'.\n";