La migliore raccolta di codice per il tuo file 'functions.php'

9 set 2010, 11:29:00
Visualizzazioni: 169K
Voti: 346

Come molti altri che stanno leggendo questo post, ho trascorso del tempo a leggere vari blog, forum e gruppi di discussione per imparare e migliorare le mie competenze WordPress. Negli ultimi 12 mesi mi sono impegnato nella missione di sostituire l'uso dei plugin aggiungendo invece il codice al mio file functions.php.

Sebbene sia completamente d'accordo che i plugin siano molto utili in molte situazioni, la mia esperienza ha dimostrato che nel 90% dei casi, anche se un plugin potrebbe esistere, il suo utilizzo effettivo potrebbe creare complicazioni non necessarie e problemi di compatibilità. Inoltre, in molti casi questi plugin aggiungevano menu e altri elementi amministrativi che non desidero o di cui non ho bisogno.

Molto spesso ho scoperto che analizzando il codice dei plugin sono stato in grado di estrarre la parte di codice che volevo e inserirla direttamente nel mio functions.php. Questo mi ha fornito esattamente la funzionalità di cui avevo bisogno senza dover includere elementi non necessari.

Quindi, lo scopo di questo post è il mio tentativo di coinvolgere voi, lettori/amministratori/sviluppatori, per condividere con me e con altri qui qualsiasi frammento di codice che trovate utile e che avete aggiunto al file functions.php del vostro tema per estendere o migliorare WordPress senza utilizzare un plugin.

Quando inviate una risposta qui, vi prego gentilmente di dare un titolo a ogni frammento di codice, farci sapere con quale versione di WordPress sapete che è compatibile, includere qualsiasi descrizione che ritenete descriva al meglio la sua funzione e (se applicabile) includere un link al plugin originale o alla fonte dove avete trovato l'informazione.

Non vedo l'ora di leggere tutte le vostre risposte e naturalmente continuerò ad aggiungere le mie nuove scoperte ogni volta che le troverò.

Vi preghiamo di votare la domanda e qualsiasi risposta che trovate utile cliccando sulla freccia su sul lato sinistro della domanda o risposta.

25
Commenti

Per favore aggiungi anche i tuoi vecchi risultati esistenti.

hakre hakre
9 set 2010 11:38:16

Ciao @NetConstructor: Sono preoccupato per questa domanda perché è una domanda del tipo "Lista di X" che ci è stato detto di tenere d'occhio dalla comunità di StackExchange: http://meta.stackexchange.com/questions/57226/should-we-have-a-list-of-x-close-reason La mia principale preoccupazione è che quando penso alla tua domanda, riesco a immaginare un numero quasi infinito di risposte e, di conseguenza, temo che questa domanda si traduca in una raccolta di risposte casuali ma nulla di definitivo. Vorrei avere il parere di altri su questo prima di (votare per) chiuderla, però, perché non voglio essere troppo severo, ho solo dei dubbi.

MikeSchinkel MikeSchinkel
9 set 2010 14:00:40

Il mio voto è per chiudere o renderla una wiki della comunità

Chris_O Chris_O
9 set 2010 15:37:41

Considerando che le prime 5 risposte sono state fornite dall'OP e la domanda sembra più orientata a raccogliere una serie di risposte piuttosto che una singola risposta definitiva, questa dovrebbe essere una wiki della community.

EAMann EAMann
9 set 2010 17:43:16

Sembra che non si possa semplicemente modificare una domanda per convertirla in una wiki. È corretto?

NetConstructor.com NetConstructor.com
9 set 2010 18:31:53

Nonostante ciò, questo è utile (ho trovato 2 snippet che utilizzerò molto) se deve diventare una wiki della community e deve essere ricominciato da zero per farlo, forse possiamo semplicemente spostare il materiale qui?

Lemon Bacon Lemon Bacon
10 set 2010 02:58:46

@NetConstructor.com ... Ho convertito la domanda in una wiki quando ho scritto il mio ultimo commento. Scusa se ha causato confusione. Normalmente, tu (come autore originale) puoi trasformare una domanda in wiki in qualsiasi momento.

EAMann EAMann
10 set 2010 03:56:15

@EAMann grazie... stavo cercando quell'opzione ma non ero sicuro di dove fosse posizionata. Forse dopo che l'hai convertita non ho più visto l'opzione?

NetConstructor.com NetConstructor.com
10 set 2010 08:37:41

@NetConstructor.com - Esatto. Una volta convertita, è convertita... l'opzione viene impostata e sparisce dalla pagina.

EAMann EAMann
10 set 2010 17:23:26

Considererei questo uno stile poco elegante e preferirei i plugin. a) Sono sviluppati da sviluppatori dedicati b) sono mantenuti e facilmente aggiornabili. Per piccoli snippet personalizzati consiglio il plugin Shortcode Exec PHP che offre un modo molto pulito - e portabile - per personalizzare il tuo Wordpress.

Raphael Raphael
10 nov 2010 11:43:21

sebbene interessante credo che la maggior parte delle persone concorderebbe sul fatto che quando si sviluppano temi si preferisce avere le cose localizzate all'interno di un file functions.php

NetConstructor.com NetConstructor.com
24 nov 2010 19:01:50

@NetConstructor - Se intendi modificare i post degli altri, per favore fallo con attenzione, hai rovinato l'indentazione nel mio messaggio, mi impegno sempre a mantenere l'indentazione per una migliore leggibilità. Apprezzerei anche se potessi prenderti il tempo per spiegare le modifiche che apporti (non ho visto alcun motivo per modificare il mio post - e non c'era alcun riepilogo delle modifiche).

t31os t31os
28 gen 2011 18:53:26

@t31os -- L'ho modificato per mantenerlo coerente con tutte le altre voci

NetConstructor.com NetConstructor.com
7 feb 2011 15:53:20

Tutte le risposte non correlate a un tema dovrebbero essere rimosse. Questo thread è un buon esempio di cattive pratiche di programmazione.

fuxia fuxia
13 giu 2011 15:09:56

Dovrei dissentire. La domanda non era correlata al tema. Tutte le modifiche al functions.PHP pertinenti sono benvenute e gli utenti dovrebbero votare positivamente/negativamente di conseguenza.

NetConstructor.com NetConstructor.com
14 giu 2011 07:56:23

È interessante notare che non viene menzionato da nessuna parte che il file functions.php è quello nella directory del tuo tema, causando confusione, come in questo caso: http://wordpress.stackexchange.com/questions/25341/error-after-editing-functions-php

scribu scribu
9 ago 2011 03:07:10

Penso che sarebbe meglio incoraggiare le persone a creare un plugin di funzionalità personalizzato invece di usare il functions.php del loro tema

Ian Dunn Ian Dunn
16 gen 2012 20:49:10

@rarst - Riguardo al tuo commento sulla chiusura di questa discussione, non è proprio questo il motivo per cui è elencata nel wiki della community?

User User
19 feb 2012 15:35:19

@Cor van Noorloos l'utilizzo dello status di wiki community è stato notevolmente ridotto e scoraggiato dalla rete. In poche parole, la scusa "non è proprio adatto per Q&A, ma è una wiki community!" non è più accettabile. Le risposte qui sono diventate un insieme disordinato e mal mantenuto, visitato solo per il fattore wow/divertimento. C'è stato molto movimento in tutta la rete per eliminare domande come questa.

Rarst Rarst
19 feb 2012 15:43:03

@rarst - Comprensibile. Punto preso.

User User
19 feb 2012 15:55:04

Per quanto riguarda la chiusura di questa specifica "wiki", voto per la sua riapertura. Ovviamente questo post wiki è molto popolare, come dimostrato dal fatto che ha 30.000 visualizzazioni, tre volte il numero di QUALSIASI altra domanda o wiki su questo sito, e l'argomento stesso è stato votato positivamente 119 volte, il doppio rispetto a qualsiasi altra domanda o argomento. Se sei d'accordo sul suo valore, vota per la riapertura cliccando sul link "riapri".

NetConstructor.com NetConstructor.com
20 feb 2012 13:12:40

@NetConstructor.com Il puro numero di visualizzazioni di pagina non è un indicatore di qualità. Dovremmo incoraggiare domande specifiche con risposte specifiche e buone pratiche di programmazione. Questa discussione è l'opposto.

fuxia fuxia
22 feb 2012 04:44:30

@toscho - questo è esattamente il motivo per cui è stato impostato come wiki e quindi questo post è perfettamente valido. Il punto che ho sollevato riguardo alle visualizzazioni di pagina è stato menzionato perché questo argomento è ovviamente 3 volte più popolare di qualsiasi altro su questo sito. Questo sito è popolare proprio grazie a domande come queste e quindi non ha senso chiuderlo. Non credo si possa discutere su questo a meno che l'interesse della comunità per argomenti come questi non abbia valore per gli amministratori.

NetConstructor.com NetConstructor.com
24 feb 2012 18:38:34

Aggiungerò un altro commento qui basandomi su alcuni calcoli che ho appena fatto. Ci sono meno di 790 utenti registrati su questo sito con un rating di "1" o superiore. Assumendo che questo gruppo di individui rappresenti coloro che effettivamente votano e/o contribuiscono al sito (e 790 è una stima incredibilmente equa), allora 117 persone che hanno votato positivamente questa domanda rappresentano oltre il 14% di tutti gli utenti attivi che hanno trovato utile questo argomento. Per favore, votate per riaprire la discussione.

NetConstructor.com NetConstructor.com
24 feb 2012 18:47:01

@NetConstructor.com Discutine su Meta dove le persone possono comprendere meglio i tuoi argomenti. :)

fuxia fuxia
24 feb 2012 19:10:14
Mostra i restanti 20 commenti
Tutte le risposte alla domanda 18
0

Aggiunta automatica di immagini di intestazione dalla directory

All'interno del tema predefinito che viene fornito con WordPress noterai un menu del tema aggiuntivo che si attiva e ti permette di selezionare un'immagine di intestazione da utilizzare. Nel codice del tema predefinito queste immagini sono hardcoded nel file functions.php. Il codice seguente permette a WordPress di rilevare automaticamente nuove immagini basandosi su una specifica directory per le immagini di intestazione che puoi creare sul tuo server (o all'interno della cartella del tuo tema).

Includerà automaticamente qualsiasi file .jpg o .jpeg. Ogni immagine deve avere un file thumbnail associato, ma questo può essere semplicemente una copia dell'originale con un nome diverso che deve terminare con "-thumbnail". Il nome associato viene utilizzato come descrizione nelle impostazioni di aspetto delle intestazioni e gli underscore vengono automaticamente sostituiti con spazi. (es. My_Header_Image_A.jpg, My_Header_Image_A-thumbnail.jpg avrà una descrizione presentata automaticamente come "My Header Image A")

if ($handle = opendir( TEMPLATEPATH . '/images/headers/') ) {
    $headers = array();
    while (false !== ($file = readdir($handle))) {
        $pos = strrpos( $file, '.' );
        if( $pos !== false && $pos > 0 ) {
            $file_name = substr( $file, 0, $pos );
            if( strpos( $file_name, "-thumbnail" ) === false ) {
                $file_ext = substr( $file, $pos+1 );
                $file_ext_low = strtolower( $file_ext );
                if( $file_ext_low == "jpg" || $file_ext_low == "jpeg" ) {
                    $headers[$file_name] = array (
                    'url' => '%s/images/headers/' . $file,
                    'thumbnail_url' => '%s/images/headers/' . $file_name ."-thumbnail." . $file_ext,
                    'description' => __( str_replace( "_", " ", $file_name ), 'twentyten' )
                    );
                }
            }
        }
    }
closedir($handle);
register_default_headers( $headers );
}
17 nov 2010 13:14:14
2

Visualizzare informazioni per gli utenti loggati

if ( is_user_logged_in() ) {

}

non funziona nel file functions.php. Puoi usare questo codice:

if ( !function_exists('is_user_logged_in') ) :

 function is_user_logged_in() {
$user = wp_get_current_user();

if ( $user->id == 0 ){
// Questa sezione se l'utente non è loggato
} else {
// Questa sezione se l'utente è loggato
}
}
endif;
3 dic 2010 08:44:36
Commenti

if( !current_user_can('read') ) dovrebbe intercettare gli ospiti (cioè gli utenti non loggati)..

t31os t31os
7 dic 2010 12:19:22

L'ho appena testato e is_user_logged_in() sembra funzionare bene in functions.php?.. Qualche informazione sul perché non dovrebbe funzionare?

Rarst Rarst
26 gen 2011 15:48:01
1

Logo personalizzati per la pagina di Login e Admin

/*-----------------------------------------------------------------------------------*/
/*  Logo personalizzati
/*-----------------------------------------------------------------------------------*/
function custom_admin_logo() {
    echo '
        <style type="text/css">
            #header-logo { background-image: url('.get_bloginfo('template_directory').'/percorso/alle/immagini/admin-logo.png) !important; }
        </style>
    ';
}
add_action('admin_head', 'custom_admin_logo');

function custom_login_logo() {
    echo '<style type="text/css">
        h1 a { background-image:url('.get_bloginfo('template_directory').'/percorso/alle/immagini/login-logo.png) !important; }
    </style>';
}

add_action('login_head', 'custom_login_logo');
13 giu 2011 14:05:39
Commenti

Per favore dai un'occhiata a questo gist. Ci sono opzioni ancora migliori rispetto a quelle mostrate nel gist. Potresti anche provare a partecipare al ticket trac (link nell'intestazione del plugin gist).

kaiser kaiser
13 giu 2011 17:01:56
5

Rimuovi l'Amministratore (Utente #1) dalla lista degli utenti

function your_pre_user_query($user_search) {
  $user = wp_get_current_user();
  if ($user->ID!=1) { // Se l'utente corrente non è l'amministratore principale (ID 1)
    global $wpdb;
    $user_search->query_where = str_replace('WHERE 1=1',
      "WHERE 1=1 AND {$wpdb->users}.ID<>1",$user_search->query_where); // Esclude l'utente con ID 1 dai risultati
  }
}
add_action('pre_user_query','your_pre_user_query'); // Aggiunge l'azione al hook pre_user_query
13 giu 2011 14:11:33
Commenti

Ancora: l'utente 1 potrebbe non essere un amministratore. Vedi Ruoli e Capacità.

fuxia fuxia
13 giu 2011 14:59:29

È un esempio. Inoltre, nelle installazioni predefinite l'utente 1 è Amministratore - il primo utente creato. Questo è il motivo per cui ho evidenziato (Utente #1)

Daniel Sachs Daniel Sachs
13 giu 2011 15:05:06

È un esempio che mostra come non verificare le capacità amministrative. Non dovresti usare questo codice in un sito web reale.

fuxia fuxia
13 giu 2011 15:08:17

Esatto. Questo codice non verifica le capacità, toscho, ma un utente specifico. Questo codice non ha nulla a che fare con le capacità e non ho menzionato le capacità da nessuna parte. Non vedo perché questo non possa essere utilizzato su siti in produzione.

Daniel Sachs Daniel Sachs
13 giu 2011 15:21:04

@Daniel Sachs Se stai cercando il primo amministratore mai aggiunto, per favore controlla prima i ruoli di tutti gli utenti, poi ordinali per ID e prendi il primo. Come ha detto @toscho: Attualmente è "un esempio di come non dovresti farlo". Motivi: a) l'amministratore effettivo potrebbe non essere quello con l'ID più basso b) Se qualcun altro lavorasse su questo, lei/lui non cercherebbe questa funzionalità in un tema.

kaiser kaiser
13 giu 2011 16:56:45
0

Ottieni gli Attributi di una Miniatura Specifica

Utilizza questa funzione all'interno del loop per determinare larghezza, altezza e URL di un'immagine miniatura. Molto utile per assegnare un'immagine miniatura come elemento di sfondo tramite CSS inline.

/**
* OTTIENI GLI ATTRIBUTI DELLA MINIATURA
*
* Recupera larghezza, altezza e URI di una miniatura.
*
* @author Philip Downer <philip@manifestbozeman.com>
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version v1.0
*
* @param string $return Accetta 'path', 'width', o 'height'.
* @param string $size La dimensione della miniatura corrispondente alla {@link add_image_size() funzione core di WP}.
* @return mixed Restituisce le informazioni richieste, o se non è assegnata nessuna 'Immagine in Evidenza', restituisce 'false'.
*/
function get_thumb_attr($return,$size='thumbnail') {
    global $post;

    if (has_post_thumbnail($post->ID)) {
      $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'intro');
      if ( $return == 'path' ) { return $thumb[0]; }
      if ( $return == 'width' ) { return $thumb[1]; }
      if ( $return == 'height' ) { return $thumb[2]; }
    } else {
        return false;
    }
}//end function
14 set 2011 21:03:24
1

Visualizza il contenuto di un widget al di fuori del contesto di una sidebar utilizzando il suo ID. Il codice HTML di wrapping prima/dopo non è incluso. Devi conoscere l'ID specifico del widget che stai cercando (es. 'text-5').

function widget_contents($id) {
    list($type,$number) = explode('-',$id);
    global $wp_registered_widgets;
    $wp_registered_widgets[$id]['callback'][0]->display_callback(array('widget_id'=>$id),$number);
}

Puoi controllare l'output di wp_get_sidebars_widgets() se non sei sicuro dell'ID preciso di cui hai bisogno.

Un esempio più completo tratto da /wp-includes/widgets.php sotto la funzione dynamic_sidebar():

function render_widget($id) {
    global $wp_registered_widgets;
    $params = array_merge(
            array( array('widget_id' => $id, 'widget_name' => $wp_registered_widgets[$id]['name']) ),
            (array) $wp_registered_widgets[$id]['params']
    );
    $classname_ = '';
    foreach ( (array) $wp_registered_widgets[$id]['classname'] as $cn ) {
            if ( is_string($cn) )
                    $classname_ .= '_' . $cn;
            elseif ( is_object($cn) )
                    $classname_ .= '_' . get_class($cn);
    }
    $classname_ = ltrim($classname_, '_');
    $params[0]['before_widget'] = sprintf($params[0]['before_widget'], $id, $classname_);

    if ( is_callable($wp_registered_widgets[$id]['callback']) )
            call_user_func_array($wp_registered_widgets[$id]['callback'], $params);
}
17 nov 2011 19:14:37
Commenti

Ops. Il metodo molto più semplice sarebbe usare the_widget() http://codex.wordpress.org/Function_Reference/the_widget

dalethedeveloper dalethedeveloper
8 feb 2012 17:35:35
0

Smiley personalizzati (plugin)

/**
 * Smiley.
 */
function filter_smilies_src($img_src, $img, $siteurl) {
    return plugins_url('', __FILE__) . '/img/smilies/' . $img;
}
add_filter('smilies_src', 'filter_smilies_src', 1, 10);

Smiley personalizzati (tema)

/**
 * Smiley.
 */
function filter_smilies_src($img_src, $img, $siteurl) {
    return get_bloginfo('stylesheet_directory') . '/images/smilies/' . $img;
}
add_filter('smilies_src', 'filter_smilies_src', 1, 10);
4 dic 2011 22:45:35
0

Riposizionare l'Editor WYSIWYG tramite JQUERY

Testato su: Wordpress 3.0.1

Questo codice ti permetterà di rimuovere specifici meta box che WordPress aggiunge di default nelle schermate di POST e PAGINE.

// RIPOSIZIONA L'EDITOR WYSIWYG TRAMITE JQUERY
   add_action('admin_head','admin_head_hook');
   function admin_head_hook() {
 ?><style type="text/css">
  #postdiv.postarea, #postdivrich.postarea { margin:0; }
  #post-status-info { line-height:1.4em; font-size:13px; }
  .custom-wysiwyg-editor-container { margin:2px 6px 6px 6px; }
  #ed_toolbar { display:none; }
  #postdiv #ed_toolbar, #postdivrich #ed_toolbar { display:block; }
 </style><?php
   }

   add_action('admin_footer','admin_footer_hook');
   function admin_footer_hook() {
 ?><script type="text/javascript">
  jQuery('#postdiv, #postdivrich').prependTo('.custom-wysiwyg-editor-container');
 </script><?php
   }
9 set 2010 11:52:16
1

Chiudi automaticamente i tag mancanti dall'editor WYSIWYG

Testato su: WordPress 3.0.1

Questo codice chiuderà automaticamente eventuali tag mancanti quando si utilizza l'editor WYSIWYG.

// PULISCE AUTOMATICAMENTE L'HTML DELL'EDITOR WYSIWYG CHIUDENDO I TAG MANCANTI
   function clean_bad_content($bPrint = false) {
 global $post;
 $szPostContent  = $post->post_content;
 $szRemoveFilter = array("~<p[^>]*>\s?</p>~", "~<a[^>]*>\s?</a>~", "~<font[^>]*>~", "~<\/font>~", "~style\=\"[^\"]*\"~", "~<span[^>]*>\s?</span>~");
 $szPostContent  = preg_replace($szRemoveFilter, '', $szPostContent);
 $szPostContent  = apply_filters('the_content', $szPostContent);
 if ($bPrint == false) return $szPostContent; 
 else echo $szPostContent;
   }
9 set 2010 13:51:01
Commenti

Solo per informarti che c'è un'opzione per farlo direttamente in WordPress. Può essere utile se si ha bisogno di imporlo per più utenti indipendentemente dalle loro impostazioni. Ma io forzerei il salvataggio di quell'impostazione invece.

Ashfame Ashfame
20 apr 2011 20:11:18
0

Rimuovi gli attributi role="search" per get_search_form()

function remove_role_search($role)
{
    $result = array();
    preg_match_all('|role="[^"]*"|U', $role, $result);
    foreach ($result[0] as $role_tag) {
        $role = str_replace($role_tag, '', $role);
    }
    return $role;
}
add_filter('get_search_form', 'remove_role_search');
28 gen 2011 19:52:16
1

Aggiungi un Link di Login a wp_nav_menu

//AGGIUNGI LINK DI LOGIN/LOGOUT AL MENU
add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);

function add_login_logout_link($items, $args) { 

        $loginoutlink = wp_loginout('index.php', false); 

        $items .= '<li>'. $loginoutlink .'</li>'; 

    return $items; 
}
23 feb 2011 17:32:36
Commenti

Non utilizzare il buffering dell'output. wp_loginout() ha un secondo parametro $echo per renderti la vita più semplice.

fuxia fuxia
23 feb 2011 21:30:34
0

Modificare il nome del menu "Articoli" nell'area di amministrazione con quello che preferisci (es. "Articoli")

// aggancia i filtri di traduzione
add_filter('gettext','cambia_post_in_articolo');
add_filter('ngettext','cambia_post_in_articolo');

function cambia_post_in_articolo( $translated ) {
$translated = str_ireplace('Post','Articolo',$translated );// ireplace è disponibile solo da PHP5
return $translated;
}

Credits a smashingmagazine.com

12 mag 2011 16:40:29
1

Rimuovi la Voce di Menu Collegamenti

Molte delle mie installazioni WordPress non richiedono che gli utenti abbiano accesso alla voce di menu 'Collegamenti'. Questa funzione la rimuove dalla vista.

add_action( 'admin_menu', 'custom_admin_menu' );
function custom_admin_menu() 
{
    global $menu;
    // var_dump($menu); // utilizza questo per identificare la chiave della voce di menu che vuoi rimuovere
    unset( $menu[15] ); //la chiave 15 è collegamenti
    if ( !current_user_can('manage_options') ) { unset( $menu[75] ); } //la chiave 75 è strumenti ... ma solo per i non super amministratori
}
14 set 2011 20:06:05
Commenti

A partire da WP 3.1, puoi anche usare remove_submenu_page http://codex.wordpress.org/Function_Reference/remove_submenu_page

User User
13 feb 2012 21:33:05
0

Disabilita il messaggio "Aggiorna ora" per gli utenti non amministratori

In realtà non sono un grande sostenitore di questo codice. Preferisco invece permettere ai clienti di aggiornare autonomamente le loro installazioni di WordPress. Questo aiuta a mantenere il sito aggiornato e mi obbliga a scrivere codice migliore.

if ( !current_user_can( 'manage_options' ) {
  // Rimuove il controllo della versione WordPress per gli utenti non amministratori
  add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
  // Disabilita gli aggiornamenti core per gli utenti non amministratori
  add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
}
14 set 2011 20:09:03
0

Aggiungi automaticamente un campo personalizzato nascosto e un valore associato a un articolo quando viene pubblicato

add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');
function add_custom_field_automatically($post_ID) {
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
    add_post_meta($post_ID, 'field-name', 'custom value', true);
}
}
4 dic 2011 14:04:44
1

Utilizzare bloginfo tramite shortcode...

function digwp_bloginfo_shortcode($atts) {
    
    extract(shortcode_atts(array(
            'key' => '',
            ), $atts));
    
    return get_bloginfo($key);
}

add_shortcode('bloginfo', 'digwp_bloginfo_shortcode');

Utilizzo:

[bloginfo key='name']
28 dic 2010 10:36:30
Commenti

Puoi aggiungere alcuni esempi di dove questo potrebbe essere utile?

Peter Mortensen Peter Mortensen
1 feb 2020 21:05:40
0

Aggiungi una classe personalizzata ai link successivo e precedente

// Aggiunge un filtro per gli attributi dei link di navigazione "next" e "previous"
add_filter('next_posts_link_attributes', 'posts_link_attributes');
add_filter('previous_posts_link_attributes', 'posts_link_attributes');

// Funzione che restituisce la classe CSS personalizzata
function posts_link_attributes(){
    return 'class="styled-button"';
}
4 dic 2011 14:02:24
0

Aggiungere tipi di post personalizzati alla pagina degli archivi

function namespace_add_custom_types( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
$query->set( 'post_type', array(
 'post', 'your-custom-post-type-here'
            ));
      return $query;
    }
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types' );
17 dic 2011 23:19:27