domanda elementare, aggiungere stringhe in array
-
alle prime armi, sto studiando una piccola funzione
$types = array("post", "page", "company", "portfolio", "events"); $status = "draft";come posso aggiungere “nuovi utenti” (users) al primo array e fare in modo che il secondo diventi un array, sul quale posso aggiungere “pending” e “published”?
-
Ciao @arsenalemusica,
non ho ben capito la domanda, potresti darci qualche dettaglio in più?
Nel frattempo provo a rispondere. In PHP per aggiungere un nuovo elemento in un array puoi utilizzare la funzione
array_push()in questo modo:array_push($types, "nuovo elemento");Non so il contesto, ma se hai la possibilità di cambiare la definizione della variabile $status, scriverei direttamente qualcosa del genere:
$status = array("draft", "pending", "published");Spero di essere stato d’aiuto,
Thomas
Grazie per la info. Sto utilizzando una funzione per far comparire le notification bubbles nel menu admin:
function show_pending_bubble_number($menu) { $types = array("post", "page", "claim_listing", "company", "portfolio", "events", "deals", "blog"); $status = "draft"; foreach($types as $type) { $num_posts = wp_count_posts($type, 'readable'); $pending_count = 0; if (!empty($num_posts->$status)) $pending_count = $num_posts->$status; if ($type == 'post') { $menu_str = 'edit.php'; } else { $menu_str = 'edit.php?post_type=' . $type; } foreach( $menu as $menu_key => $menu_data ) { if( $menu_str != $menu_data[2] ) continue; $menu[$menu_key][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" . number_format_i18n($pending_count) . '</span></span>'; } } return $menu; } add_filter('add_menu_classes', 'show_pending_bubble_number');Praticamente, vorrei che le notifiche $types mi arrivino non solo ogni volta che viene creato un CPT (post, portfolio, etc.) ma anche ogni volta che un nuovo utente si registra.
E poi ho bisogno che, dei suddetti, il sistema mi avverta non solo per uno $status in draft, ma anche in pending/published.
Mi sembra che il tuo suggerimento vada nella giusta direzione. Adesso lo provo ed eventualmente chiudo questo thread.no, il suggerimento di Thomas non sembra funzionare….
questo post non è “risolto”
Guardando la funzione ho capito un po’ meglio la situazione.
Per quanto riguarda lo $status, potresti sostituire
$status = "draft";con
$status_array = array("draft", "published", "pending");Dopodiché all’interno della funzione bisogna adattare un po’ il codice sostituendo
$pending_count = 0; if (!empty($num_posts->$status)) $pending_count = $num_posts->$status;con
$pending_count = 0; foreach($status_array as $status) { if (!empty($num_posts->$status)) $pending_count += $num_posts->$status; }In questo modo si avrà la notifica con il numero totale di post draft, pending o published.
Per gestire le notifiche relative agli utenti, invece, la situazione è più complicata. Mi viene in mente una soluzione, provo a schematizzarla (ipotizzo di fare tutto queste cose all’interno di un plugin):
– definisco un nuovo campo nel DB e una nuova variabile che contenga il numero di nuovi utenti registrati dall’ultima volta che si è fatto l’accesso alla bacheca di WP.
– definisco una funzione che incrementi tale variabile ogni volta che un utente viene creato.
– aggancio tale funzione all’hook user_register oppure ricorro alla funzione wp_new_user_notification() e la scrivo direttamente all’interno.
– nella tua funzioneshow_pending_bubble_number($menu), dopo il bloccoforeach($types as $type), aggiungo:`$menu_str = ‘users.php’;
foreach( $menu as $menu_key => $menu_data ) {
if( $menu_str == $menu_data[2] )
$menu[$menu_key][0] .= ” <span class=’update-plugins count-$pending_count’><span class=’plugin-count’>” . number_format_i18n($new_user_count) . ‘</span></span>’;
}`dove
$new_user_countè il valore contenuto nella variabile definita all’inizio e contenente il numero di nuovi utenti registrati.– dopo questa funzione resetto
$new_user_countnel db.Tutta questa complessità deriva dal fatto che WordPress non memorizza lo stato degli utenti appena registrati come accade per i post in bozza o pubblicati, perché non esiste proprio uno stato relativo a quello.
Spero di averti fornito qualche spunto utile per progettare la tua soluzione e risolvere il problema.
Thomas
[c’è un problema con WP forum, ho letto la tua risposta per email ma qui non compare]
Dunque non è il mio tema che manca di qualche funzione, ma proprio WP che non permette notifiche sugli utenti. Le tue informazioni sono molto utili, ti confermo che la prima parte relativa a $status funziona bene. Adesso mi devo studiare la seconda parte, ed eventualmente pubblicherò qui la soluzione.Risolto il problema con la risposta, spero ti sia d’aiuto!
Il topic ‘domanda elementare, aggiungere stringhe in array’ è chiuso a nuove risposte.