Schimbă URL-ul link-ului pentru logo
Încerc să schimb URL-ul logo-ului site-ului la "mywebsite.com/side2", dar nu funcționează, poate cineva să-mi spună care este eroarea în codul de mai jos?
add_filter( 'login_headerurl', 'custom_loginlogo_url' );
function custom_loginlogo_url($url) {
return home_url( 'side2' );
}
Filtrul login_headerurl
este folosit pentru a modifica URL-ul logo-ului de pe pagina de autentificare, conform Codex.
Pentru a schimba URL-ul logo-ului de pe pagina principală, va trebui să analizați fișierul header.php
al temei dumneavoastră. Logo-ul și link-ul asociat sunt incluse acolo. În funcție de tema folosită, modul în care URL-ul este generat poate varia.
Accesați fișierul header.php
din Apariție > Editare
în panoul de administrare și căutați linia care conține logo-ul. Acolo, îl puteți modifica după preferințe.

Bine, dar trebuie să modific linkul în fișierul function.php, deoarece linkul va varia în funcție de profilul utilizatorului. Scriptul de mai sus este doar partea care schimbă URL-ul.

Îl poți modifica în funcție de utilizator și în headers.php
. Dacă dezvoltatorul temei folosește simplu bloginfo(url)
pentru a afișa URL-ul, nu există nicio modalitate de a-l schimba folosind functions.php
, decât dacă modifici ÎNTREAGA funcție bloginfo()
sau orice altă funcție folosită.

Dacă autorul temei folosește bloginfo('url')
pentru a afișa URL-ul, atunci poți face următoarele.
bloginfo('url')
este un wrapper pentru echo get_bloginfo('url')
, care la rândul său este un wrapper pentru home_url()
, iar acesta este un wrapper pentru get_home_url()
. Codul pentru această funcție este disponibil aici.
După cum se poate observa, la sfârșitul funcției există un filtru pe care îl poți folosi pentru a modifica valoarea URL-ului de acasă.
Editat astfel încât filtrele să se active doar atunci când sunt apelate atât filtrul home_url, cât și 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 ) {
//* Elimină filtrul
remove_filter( 'custom_logo', 'wpse_106269_custom_logo', 10, 2 );
//* Folosește str_replace() pentru a modifica link-ul
return str_replace( $old_url, $new_url, $html );
}

Funcție utilă în cazul în care dorește să schimbe fiecare apelare bloginfo('url')
pe site-ul său, astfel încât vechiul URL să devină inaccesibil!

Puteți utiliza această funcție pentru a schimba URL-ul logo-ului în WordPress.
Pur și simplu adăugați acest cod în fișierul function.php
//schimbarea URL-ului pe logo pentru a le redirecționa
function mb_login_url() { return home_url(); }
add_filter( 'login_headerurl', 'mb_login_url' );
// schimbarea textului alternativ pe logo pentru a afișa numele site-ului
function mb_login_title() { return get_option( 'blogname' ); }
add_filter( 'login_headertitle', 'mb_login_title' );
Pentru a schimba Logo-ul pe pagina de login din panoul de administrare
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' );

În cazul în care și alții se confruntă cu aceeași problemă, am creat un timp pluginul SMNTCS Custom Logo Link, care funcționează cu toate temele care au peste 100.000 de instalări active. Dacă tema pe care o utilizați nu se află printre acestea, pur și simplu creați o solicitare pe https://github.com/nielslange/smntcs-custom-logo-link/issues și voi fi bucuros să extind funcționalitatea pluginului.

Am ales în final următoarea abordare bazată pe Javascript, care a funcționat pentru nevoile mele. Folosesc tema de la https://theme.co/x. Am instalat plugin-ul Insert Headers and Footers și apoi am adăugat următorul cod Javascript (în secțiunea Footer):
<script>
document.getElementsByClassName('x-brand')[0].setAttribute("href", "https://example.com");
</script>
Va trebui să modifici 'x-brand'
pentru a indica clasa elementului href al logo-ului specifică temei pe care o folosești.

Cred că ar fi mai bine să reparăm pagina. Mi-ar fi teamă că browserul ar putea începe să încarce vechea imagine sau ar putea exista o mică săritură în layout dacă nu ai atributele de înălțime și lățime setate. Trebuie să existe o modalitate de a schimba asta în tema ta.

Am vrut să fac același lucru, bazându-mă pe tema _underscore. Nu am găsit o metodă gata făcută. Așadar, am folosit inspectorul web pentru a găsi div-ul care conține logo-ul din header.
Se află în wp-includes/theme.php, linia 1802 în instalarea mea.
Am schimbat
'<div id="wp-custom-header" class="wp-custom-header">%s</div>'
în
'<div id="wp-custom-header" class="wp-custom-header"><a href="https://www.theURLToYourHomepa.ge">%s</a></div>'
și funcționează pentru toate paginile.
Nu sunt sigur că este o metodă foarte ortodoxă, și aștept cu interes orice comentarii despre asta.

Este foarte nerecomandat să modifici fișierele de bază ale WordPress (cum este cel pe care îl sugerezi). De fiecare dată când WordPress se actualizează, există șansa ca acest lucru să fie suprascris complet de orice cod actualizat pe care echipa WordPress Core îl lansează.

Da, știu. Am spus că nu este ortodox. Dar este chiar foarte recomandat să găsești o soluție la această problemă. Nu ajută să spui "nu poți face asta dar nu știu cum să o faci"... Nicio altă soluție de pe această pagină nu ar funcționa pentru mine. Și dacă există o șansă să trebuiască să o fac după fiecare actualizare, atunci așa să fie. Durează cam 30 de secunde.
