Aggiungere i Custom Post Types nella Home Page di WordPress

Sviluppando progetti su WordPress capita sempre più spesso di creare dei custom post type, cui purtroppo o per fortuna, nella fase di registrazione non vengono inseriti nella Main Query del CMS, quindi per visualizzarli nella Home Page o negli Archivi e necessario aggiungere alcune righe di codice PHP.

Fare ciò è comunque abbastanza semplice, basta manipolare la Main Query di WordPress utilizzando l’action hook pre_get_posts e ottenre così il risultato desiderato. Per realizzarla è quindi necessario impostare la query da eseguire inserendo i tipi di post che si vogliono visualizzare automaticamente.

Ad esempio se vogliamo visualizzare nella home page di WordPress, oltre ai classici post anche le pagine ed un custom post type di tipo gallery basterà verificare tramite is_home che la pagina visualizzata sia appunto l’home page e successivamente tramite $query->set impostare i post_type da selezionare.

Ecco un semplice esempio

// Mostriamo gli articoli (post), pagine (page) ed i custom post type gallery (gallery) nella home page

// Intercettiamo l'hook pre_get_posts per chiamare la nostra funzione add_page_and_gallery_to_query
add_action( 'pre_get_posts', 'add_page_and_gallery_to_query' );

// Controlliamo di essere sulla home e modifichiamo la query aggiungendo page e gallery
function add_page_and_gallery_to_query( $query ) {
  if ( is_home() && $query->is_main_query() )
    $query->set( 'post_type', array( 'post', 'page', 'movie' ) );
  return $query;
}

 

Fatto ciò è tutto pronto, buon coding!

bbPress: risolvere l’errore Deprecated: Assigning the return value of new by reference is deprecated in bb-includes/backpress/class.wp-taxonomy.php

Se ultimamente avete aggiornato nel vostro sistema PHP (da PHP 5.3 in poi) e utilizzate sul vostro server bbPress, molto probabilmente avrete ricevuto l’errore:

Deprecated: Assigning the return value of new by reference is deprecated in bb-includes/backpress/class.wp-taxonomy.php

o qualche errore simile.

Ciò dipende dal fatto che utilizzando bbPress stabile state facendo uso di funzioni deprecate di PHP, ma ancora valide e basterò quindi sopprimere il messaggio, il problema è risolto già nella versione in sviluppo del software di gestione del forum di casa WordPress (o meglio Automattic), però per ovviare al problema in produzione dovrete fare delle modifiche manuali.

Per applicare il fix al problema di bbPress dovete quindi modificare i file come sotto riportato:

/bb-admin/includes/class.bb-install.php:

alla riga 1283 dovete modificare da

$bbdb = new BPDB_Multi( array(

a

$bbdb =& new BPDB_Multi( array(

/bb-admin/install.php:

alla riga 3dovete modificare da

error_reporting(E_ALL ^ E_NOTICE);

a

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING);

/bb-includes/functions.bb-l10n.php:

alla riga 484 dovete modificare da

$empty = new Translations;

a

$empty =& new Translations;

/bb-load.php:

alla riga 25 dovete modificare da

error_reporting( E_ALL ^ E_NOTICE );

a

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING);

Fatto ciò non dovreste più avere visualizzati i messaggi di errore! Buon lavoro!

Far funzionare Simple Tags con WordPress 2.9 (Problema Simple Tags can’t work with this WordPress version !)

Se siete tra gli utenti che hanno di fretta e furia installato WordPress 2.9, senza attendere, provare e testare, ed utilizzate il plugin Simple Tags (versione fino alla attuale 1.6.6), vi sarete trovati con la fatidica scritta “Simple Tags can’t work with this WordPress version !“. In realtà Simple Tags non funziona con WordPress 2.9 solo per questione di controllo di versione, per il resto nella nuova versione del CMS non è stato cambiato nulla che inficia il corretto funzionamento del plugin.
Per farlo funzionare in attesa dell’aggiornamento basta fare una semplice modifica seguendo questi passi:

  • Andare dalla dashboard di WordPress in Plugin -> Editor
  • Selezionare dalla casella a discesa in alto a destra Simple Tags e cliccare su Seleziona
  • Cercare la stringa
    if ( strpos($wp_version, '2.7') !== false || strpos($wp_version, '2.8') !== false ) {
    e sostituirla con
    if ( strpos($wp_version, '2.7') !== false || strpos($wp_version, '2.8') !== false || strpos($wp_version, '2.9') !== false ) {
  • Salvare il file cliccando su Aggiorna File

Avrete ora tutto nuovamente funzionante. In alternativa potete anche modificare da shell o in locale e poi agigornare via ftp il file wp-content/plugin/simple-tags/simple-tags.php.

Buon Lavoro!