Schimbă URL-ul link-ului pentru logo

16 feb. 2017, 17:56:24
Vizualizări: 60.5K
Voturi: 3

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

Bună, încerci să schimbi URL-ul logo-ului de pe pagina principală sau al panoului de autentificare?

Johansson Johansson
16 feb. 2017 18:03:47

Logo-ul paginii principale

Pavanello Pavanello
16 feb. 2017 18:42:10

@JackJohansson Am aflat care este problema, funcția login_headerurl este pentru pagina de autentificare, iar eu doresc să modific logo-ul principal al site-ului. Știi care este funcția pentru URL-ul logo-ului principal al site-ului? Ai avut dreptate!

Pavanello Pavanello
16 feb. 2017 19:20:15

Da, tocmai am postat un răspuns despre asta. Copiază partea din header.php care generează URL-ul către întrebarea ta, și voi actualiza răspunsul meu.

Johansson Johansson
16 feb. 2017 20:03:20
Toate răspunsurile la întrebare 8
2

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.

16 feb. 2017 18:47:34
Comentarii

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.

Pavanello Pavanello
16 feb. 2017 18:54:57

Î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ă.

Johansson Johansson
16 feb. 2017 19:05:24
2

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

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!

Johansson Johansson
16 feb. 2017 20:13:27

argument valid. am modificat răspunsul astfel încât să funcționeze doar când custom_logo() și home_url() sunt apelate împreună

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

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' );
28 aug. 2017 19:25:41
Comentarii

Acesta este doar pentru sigla de pe pagina de autentificare, nu pentru sigla din antet, despre care vorbea OP.

YourManDan YourManDan
14 mai 2024 23:40:35
0

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

6 apr. 2020 16:38:44
0

Cea mai ușoară metodă este să adaugi acest cod jQuery

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

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.

24 aug. 2021 21:08:31
Comentarii

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.

Rup Rup
27 aug. 2021 12:41:57

De acord. Nu este soluția ideală, dar am petrecut aproximativ o oră căutând o metodă de a schimba asta în temă, inclusiv analizând codul temei, și nu am găsit nicio cale.

Adrian Laurenzi Adrian Laurenzi
30 aug. 2021 18:17:37
1
-1

Poți folosi funcția get_page_by_path în felul următor:

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

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

utilizarea funcției get_page_by_path așa cum ai sugerat mai sus nu a funcționat!

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

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.

6 feb. 2025 21:55:34
Comentarii

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

Howdy_McGee Howdy_McGee
6 feb. 2025 22:17:43

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.

bastos bastos
12 feb. 2025 07:58:29