Cambiare l'URL del link del logo

16 feb 2017, 17:56:24
Visualizzazioni: 60.5K
Voti: 3

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' );
}
4
Commenti

Ciao, stai cercando di modificare l'URL del logo della homepage o del pannello di login?

Johansson Johansson
16 feb 2017 18:03:47

Il logo della homepage

Pavanello Pavanello
16 feb 2017 18:42:10

@JackJohansson Ho capito qual è il problema, la funzione login_headerurl è per la pagina di login mentre quello che voglio è per il logo principale del sito, sai qual è la funzione per l'URL del logo principale del sito? Avevi ragione!

Pavanello Pavanello
16 feb 2017 19:20:15

Sì, ho appena pubblicato una risposta su questo. Copia la parte del tuo header.php che genera l'URL per la tua domanda, e aggiornerò la mia risposta.

Johansson Johansson
16 feb 2017 20:03:20
Tutte le risposte alla domanda 8
2

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.

16 feb 2017 18:47:34
Commenti

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.

Pavanello Pavanello
16 feb 2017 18:54:57

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.

Johansson Johansson
16 feb 2017 19:05:24
2

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 );
}
16 feb 2017 20:11:31
Commenti

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!

Johansson Johansson
16 feb 2017 20:13:27

giusta osservazione. ho modificato la risposta in modo che funzioni solo quando custom_logo() e home_url() vengono chiamati insieme

Nathan Johnson Nathan Johnson
16 feb 2017 21:39:51
1

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' );
28 ago 2017 19:25:41
Commenti

Questo è solo per il logo nella pagina di accesso, non per il logo nell'intestazione come menzionato dall'OP.

YourManDan YourManDan
14 mag 2024 23:40:35
0

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.

6 apr 2020 16:38:44
0

Il modo più semplice è aggiungere questo codice jQuery

jQuery(document).ready(function($){  
        $("a.logo-class").attr("href", "https://google.com");
});
7 giu 2020 08:47:50
2

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.

24 ago 2021 21:08:31
Commenti

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.

Rup Rup
27 ago 2021 12:41:57

Concordo. Non è la soluzione ideale ma ho passato circa un'ora a cercare un modo per cambiarlo nel tema, incluso esaminare il codice del tema, e non sono riuscito a trovare un modo.

Adrian Laurenzi Adrian Laurenzi
30 ago 2021 18:17:37
1
-1

Puoi utilizzare get_page_by_path nel seguente modo:

add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {

  return get_page_by_path( 'side2' );
}
16 feb 2017 18:07:37
Commenti

usare get_page_by_path come hai suggerito sopra non ha funzionato!

Pavanello Pavanello
16 feb 2017 18:51:14
2
-1

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.

6 feb 2025 21:55:34
Commenti

È 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.

Howdy_McGee Howdy_McGee
6 feb 2025 22:17:43

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.

bastos bastos
12 feb 2025 07:58:29