Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828

    [domanda elementare] aggiungere dati a variabile

    Rispondete anche a domande troppo elementari?
    Devo aggiungere
    Codice PHP:
    'draft''publish' 
    alla variabile
    Codice PHP:
    $status 'pending'
    Si fa così?
    Codice PHP:
    $status 'pending''draft''publish' 
    Evidentemente no perchè si è rotto tutto.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Che intendi per "aggiungere"?
    Alla fine la stringa deve essere "pending, draft, publish"?

    In tal caso
    Codice PHP:
    $status 'pending' ', draft' ', publish'
    Se ho capito male, spiega meglio cosa devi ottenere.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    Non mi aspettavo una risposta, grazie davvero. Ho una funzione che guarda lo stato di pubblicazione di un post (wordpress) e mi avverte se è nello stato "pending". io vorrei estenderla alle altre possibilità (draft, pubished, etc.).
    Posto l'intero codice, sono poche righe, nel caso dovessero essere aggiunte altre stringe di verifica.

    Codice PHP:
    function keha_pending_posts_indicator$menu ) {

        
    $post_types get_post_types();
        if ( empty( 
    $post_types ) ) {
            return;
        }
        
        foreach ( 
    $post_types as $type ) {

            
    $status        'pending';
            
    $num_posts     wp_count_posts$type'readable' );
            
    $pending_count 0;

            if ( ! empty( 
    $num_posts->$status ) ) {
                
    $pending_count $num_posts->$status;
            }

            
    // Build string to match in $menu array
            
    if ( $type == 'post' ) {
                
    $menu_str 'edit.php';
            } else {
                
    $menu_str 'edit.php?post_type='.$type;
            }

            
    // Loop through $menu items, find match, add indicator
            
    foreach ( $menu as $menu_key => $menu_data ) {
                if ( 
    $menu_str != $menu_data] ) {
                    continue;
                } else {
                    
    // NOTE: Using the same CSS classes as the plugin updates count, it will match your admin color theme just fine.
                    
    $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''keha_pending_posts_indicator' ); 

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non so il formato dei dati ritornati dalla funzione wp_count_post(), ma intanto prova questo

    Codice PHP:
    $pending 'pending';
    $draft 'draft';
    $published 'published';

    if ( ! empty( 
    $num_posts->$pending ) ) {
        
    $pending_count $num_posts->$pending;
    }

    if ( ! empty( 
    $num_posts->$draft ) ) {
        
    $draft_count $num_posts->$draft;
    }

    if ( ! empty( 
    $num_posts->$published) ) {
        
    $published_count $num_posts->$published;


  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    Ho fatto la modifica a dovere, ma non mostra l'alert che è avvenuto un draft/pending/publish (ho provato a mettere il post in tali status).

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Leggi la documentazione di WP, c'è scritto come si fa
    https://codex.wordpress.org/Function...wp_count_posts

    Codice PHP:
    $count_posts wp_count_posts();

    $published_posts $count_posts->publish;
    $draft_posts $count_posts->draft

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    dunque, per logica riagganciandomi anche a questo Codex, la nuova parte di codice dovrebbe essere così:

    Codice PHP:
            $pending 'pending';
            
    $draft 'draft';
            
    $publish 'publish';
            
    $count_posts     wp_count_posts$type'readable' );
            
    $pending_count 0;


            if ( ! empty( 
    $count_posts->$pending ) ) {
                
    $draft_posts $count_posts->pending;  
            }

            if ( ! empty( 
    $count_posts->$draft ) ) {
                
    $draft_posts $count_posts->draft;  
            }

            if ( ! empty( 
    $count_posts->$published) ) {
                
    $published_posts $count_posts->publish;
            } 
    Ma gli alerts non compaiono. A questo punto è più grande di me.

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non hai letto ciò che ti ho scritto, oppure non hai notato le differenze col codice precedente.
    Intanto la funzione wp_count_posts() non ha parametri, poi l'accesso alle proprietà del risultato si fa per esempio con
    $count_posts->draft;
    senza il $ dopo ->

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2007
    residenza
    Trieste
    Messaggi
    828
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    $count_posts->draft; senza il $ dopo ->
    Ho tolto le variabili ma non vedo differenza in quello che scrivi da quello che ho scritto sopra.

  10. #10
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Non conosco sto plugin di wp, cmq dal codice che hai postato si nota che questo fa due cose:

    1. Ritrova il numero di post con status pending.

    2. Cicla sul menù per trovare il link di edit dei post ed aggiunge il pallino con il numero trovato in 1.

    Ora, tu fa solo il punto 1. Trovi il numero di post nello stato di pending, draft, published.
    A questo punto devi trovare il modo di mostrali...e qui sorge il problema: cha fai metti tre pallini accanto alla voce del menù?

    Codice PHP:
    foreach ( $menu as $menu_key => $menu_data ) {
                if ( 
    $menu_str != $menu_data] ) {
                    continue;
                } else {
                    
    // NOTE: Using the same CSS classes as the plugin updates count, it will match your admin color theme just fine.
                    
    $menu$menu_key ][0] .= " <span class='update-plugins count-$pending_count'><span class='plugin-count'>" number_format_i18n$pending_count ) . '</span></span>';

                    
    // NOTE: Using the same CSS classes as the plugin updates count, it will match your admin color theme just fine.

                    
    $menu$menu_key ][0] .= " <span class='update-plugins count-$draft_count'><span class='plugin-count'>" number_format_i18n$draft_count ) . '</span></span>';

                    
    // NOTE: Using the same CSS classes as the plugin updates count, it will match your admin color theme just fine.
                    
    $menu$menu_key ][0] .= " <span class='update-plugins count-$published_count'><span class='plugin-count'>" number_format_i18n$published_count ) . '</span></span>';
                }
            } 
    Che, sinceramente, non so se è funziona (inoltre dovresti cambiare il colore dei pallini se no non si capisce a chi è riferito)

    oppure devi trovare un altro modo per visualizzare i 3 valori
    Ultima modifica di boots; 04-11-2016 a 10:14

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.