Cambiare l'URL del link del logo
Sto cercando di cambiare l'URL del logo del sito in "mywebsite.com/side2", ma non funziona, qualcuno può dirmi dove si trova l'errore nel codice qui sotto?
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
return home_url( 'side2' );
}
Il filtro login_headerurl
serve per modificare l'URL del logo nella pagina di login, secondo quanto riportato nel Codex.
Per cambiare l'URL del logo nella tua homepage, dovrai esaminare il file header.php
del tuo tema. Il tuo logo e il suo collegamento sono inclusi lì. A seconda del tema, il modo in cui l'URL viene generato potrebbe essere diverso.
Accedi al tuo file header.php
da Aspetto > Modifica
nel pannello di amministrazione, e cerca la riga che contiene il logo. Lì, puoi modificarlo come preferisci.

Ok, ma devo modificare il link in function.php, perché il link varierà in base al profilo utente. Lo script sopra è solo la parte che cambia l'url.

Puoi modificarlo in base all'utente anche in headers.php
. Se lo sviluppatore del tema sta semplicemente usando bloginfo(url)
per visualizzare l'URL, non c'è modo di cambiarlo usando functions.php
, a meno che non modifichi l'INTERA funzione bloginfo()
, o qualsiasi altra funzione utilizzata.

Se l'autore del tema utilizza bloginfo('url')
per visualizzare l'URL, puoi fare quanto segue.
bloginfo('url')
è un wrapper per echo get_bloginfo('url')
che a sua volta è un wrapper per home_url()
, il quale è un wrapper per get_home_url()
. Il codice di questa funzione è disponibile qui.
Come si può vedere, alla fine della funzione è disponibile un filtro che puoi utilizzare per modificare il valore dell'URL della home.
Modificato in modo che i filtri vengano attivati solo quando vengono chiamati sia home_url
che custom_logo
.
add_filter( 'home_url', 'wpse_106269_home_url', 10, 4 );
function wpse_106269_home_url( $url, $path, $orig_scheme, $blog_id ) {
add_filter( 'custom_logo', 'wpse_106269_custom_logo', 10, 2 );
}
function wpse_106269_custom_logo( $html, $blog_id ) {
//* Rimuove il filtro
remove_filter( 'custom_logo', 'wpse_106269_custom_logo', 10, 2 );
//* Usa str_replace() per modificare il link
return str_replace( $old_url, $new_url, $html );
}

Funzione utile nel caso in cui si voglia cambiare ogni singolo bloginfo('url')
nel proprio sito web in modo che il vecchio URL diventi irraggiungibile!

Puoi utilizzare questa funzione per modificare l'URL del logo in WordPress.
Aggiungi semplicemente questo codice nel file function.php
//modifica l'URL del logo per reindirizzarlo
function mb_login_url() { return home_url(); }
add_filter( 'login_headerurl', 'mb_login_url' );
// modifica il testo alternativo del logo per mostrare il nome del tuo sito
function mb_login_title() { return get_option( 'blogname' ); }
add_filter( 'login_headertitle', 'mb_login_title' );
Per cambiare il logo nella pagina di login dell'area amministrativa
function my_login_logo_one() {
?>
<style type="text/css">
body.login div#login h1 a {
background-image: url(http://sitetitle.com/logo-1.png);
}
</style>
<?php }
add_action( 'login_enqueue_scripts', 'my_login_logo_one' );

Nel caso qualcun altro si trovi ad affrontare lo stesso problema, ho creato il plugin SMNTCS Custom Logo Link qualche tempo fa, che funziona con tutti i temi che hanno più di 100.000 installazioni attive. Se il tema che stai utilizzando non è tra questi, crea semplicemente un issue su https://github.com/nielslange/smntcs-custom-logo-link/issues e sarò felice di estendere il plugin.

Alla fine ho adottato il seguente approccio basato su Javascript che ha funzionato per i miei scopi. Sto utilizzando il tema da https://theme.co/x. Ho installato il plugin Insert Headers and Footers e poi ho aggiunto il seguente Javascript (sezione Footer):
<script>
document.getElementsByClassName('x-brand')[0].setAttribute("href", "https://example.com");
</script>
Dovrai cambiare il codice 'x-brand'
per puntare alla classe dell'elemento href del logo specifico per il tema che stai utilizzando.

Penso che sarebbe meglio correggere la pagina. Sarei preoccupato che il browser inizi a caricare la vecchia immagine, o che ci possa essere un breve salto nel layout se non hai gli attributi di altezza e larghezza su di esse. Dev'esserci un modo per cambiarlo nel tuo tema.

Volevo fare lo stesso, basandomi sul tema _underscore. Non sono riuscito a trovare un metodo già pronto. Quindi, ho usato l'ispezione web per trovare il div contenente il logo dell'header.
Si trova in wp-includes/theme.php, riga 1802 nella mia installazione.
Ho modificato
'<div id="wp-custom-header" class="wp-custom-header">%s</div>'
in
'<div id="wp-custom-header" class="wp-custom-header"><a href="https://www.theURLToYourHomepa.ge">%s</a></div>'
e funziona su tutte le pagine.
Non scommetto che sia molto ortodosso e non vedo l'ora di sentire eventuali commenti a riguardo.

È altamente sconsigliato modificare i file core di WordPress (come quello che stai suggerendo). Ogni volta che WordPress viene aggiornato, c'è la possibilità che queste modifiche vengano sovrascritte completamente dal nuovo codice inviato dal team di sviluppo di WordPress Core.

Sì, lo so. Ho detto che non è ortodosso. Ma è ancora più altamente raccomandato trovare una soluzione a questo problema. Non aiuta dire "non puoi farlo ma non so come fare"... Nessun'altra soluzione in questa pagina funzionava per me. E se c'è la possibilità che debba farlo dopo ogni aggiornamento, allora pazienza. Ci vogliono circa 30 secondi.
