Usa l’ID utente corrente con Pods per WordPress
Il Pods Framework per WordPress, un’utilità specifica che esiste da molto tempo, offre molte funzionalità che possono rendere il lavoro con tipi di contenuto avanzati, impostazioni personalizzate e così via.
Lo dico perché Pods è un’utilità popolare e sono disponibili alcune funzionalità che forniscono alcune funzionalità interessanti.
Attraverso l’uso di codici brevi, è possibile eseguire alcune potenti query di database per recuperare informazioni per popolare i moduli in modo dinamico.
Un caso d’uso che vedo in alcuni risultati è come popolare uno shortcode con l’ID dell’utente corrente. C’è un post sul forum a riguardo qui e anche una discussione continua su Stack Overflow.
Ma se stai cercando un modo per filtrare il contenuto per farlo senza rielaborare alcuni degli shortcode esistenti, c’è un altro modo per farlo.
Usa l’ID utente corrente con i pod
Supponiamo che tu voglia popolare un modulo con l’ID dell’utente corrente senza uno shortcode; puoi farlo attraverso l’uso di un token e un filtro.
Ad esempio, supponiamo che il tuo shortcode assomigli a questo :
[pods-form name="user" fields="first_name, last_name" where="current_user_id = user_id" label="Update"]
Per filtrare questo, invece di usare uno shortcode, puoi fare quanto segue :
<?php
add_filter('the_content', __NAMESPACE__. 'filter_pods_by_current_user');
/**
* Replaces the current_user_id = user_id with the current user ID in the
* incoming content (which includes the Pods shortcode).
*
* @param string $content the content of the shortcode.
* @return string the result of the parsed shortcode.
*/
function filter_pods_by_current_user($content)
{
$user = wp_get_current_user();
return str_ireplace(
'current_user_id = user_id',
"id='". $user->ID. "'",
$content
);
}
Questo cercherà un token specifico nella stringa, lo sostituirà e quindi lo restituirà con un attributo shortcode compatibile con Pods prima che lo shortcode sia stato elaborato.
Quindi Pods eseguirà la query in modo tale che assomigli a questa (supponendo che l’ID dell’utente corrente sia 100):
[pods-form name="user" fields="first_name, last_name" where="id = 100" label="Update"]
Una cosa che voglio chiarire è che non lo consiglio necessariamente rispetto all’uso della manipolazione dello shortcode.
Piuttosto, usa quello che meglio si adatta alla situazione. Se si tratta di codici brevi, vedere il codice collegato nell’introduzione; altrimenti, forse il filtro sopra funziona bene.
