Hack di WordPress per il sito Web riservato ai membri
Pubblicato: 2020-05-19Per impostazione predefinita, WordPress è uno strumento di blogging. Tuttavia, puoi davvero personalizzare per renderlo come vuoi. Molte persone usano WordPress per creare un sito Web riservato ai membri.
Puoi sempre usare un plugin, ma se hai solo bisogno di una piccola modifica, perché installare un plugin quando puoi farlo con poche righe di codice. Ecco alcuni semplici ma efficaci hack per la creazione di un sito riservato ai membri.
Contenuto riservato ai membri senza plug-in
Se sul tuo sito sono presenti determinati contenuti che volevi mostrare solo al membro registrato, puoi farlo utilizzando il seguente codice nel tuo tema. Qualunque cosa accada tra is_user_logged_in
sarà vista solo dai membri.
<?php if ( is_user_logged_in() ) { ?> // Content for Logged in user <?php } else {?> // Content for everyone else <?php }?>
Mostra il modulo di accesso di WordPress ovunque e personalizzalo
Se desideri includere il modulo di accesso di WordPress in qualsiasi punto del tuo tema, puoi farlo utilizzando la seguente funzione:
<?php ks29so_login_form(); ?>
Tuttavia, non ti dà la possibilità di personalizzare il modulo di accesso, perché estrae direttamente il modulo di accesso WordPress predefinito. E se volessi mostrare qualcosa del genere?
Ecco il codice per farlo. Incolla il codice seguente dove vuoi che venga visualizzato il modulo.
// WordPress Login Form <?php if (!(current_user_can(‘level_0′))){ ?> <h3>Member Login</h3> <form action="<?php echo get_option(‘home’); ?>/wp-login.php" method="post"> <table width=’100%’ cellspacing="0" cellpadding="0"> <tr> <td> <label><?php _e( ‘Username’ ) ?></label> <input type="text" name="log" class="input" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" /> </td> <td> <label><?php _e( ‘Password’ ) ?></label> <input type="password" name="pwd" class="input" value="" /> </td> </tr> <tr> <td colspan="2"><?php do_action(‘login_form’); ?> </td> </tr> <tr> <td> <a href="<?php echo site_url(‘wp-login.php?action=lostpassword’, ‘login’) ?>" title="<?php _e(‘Password Lost and Found’) ?>"><?php _e(‘Forgot Password?’) ?></a> </td> <td> <input type="submit" name="submit" value="Log In" class="button" /> <input type="hidden" name="redirect_to" value="http://<?php echo $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ?>" /> </td> </tr> </table> </form> <?php } else { ?> <!– When User logged in Show the following info –> <h2>Logout</h2> <?php get_currentuserinfo();?> Welcome Back  <?php echo($current_user->user_login . " ");?><br /> <a href="<?php echo ks29so_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">Logout</a><br /> <a href="<?php echo get_admin_url(); ?>">Admin?</a><!– If you are admin goes to admin dashboard –> <?php }?>
Puoi aggiungere un tag div CSS per modellarlo. Il vantaggio dell'utilizzo di questo modulo di accesso è quasi possibile creare una mini dashboard per i membri utilizzando la funzione get_currentuserinfo() e mostrare qualsiasi informazione sull'utente.
Menu WordPress personalizzato per i membri
Come contenuto puoi creare menu WordPress personalizzati per i membri. Registriamo prima il menu. Vai al file della funzione del tuo tema (functions.php). Utilizzare il codice seguente per registrare i menu.
register_nav_menus( array( ‘primary’ => __( ‘Primary Navigation’, ‘twentyten’ ), ‘visitor’ => __( ‘Visitor Navigation’, ‘twentyten’ ), ‘footer’ => __( ‘Footer Navigation’, ‘twentyten’ ), ) );
Ora, inserisci il seguente codice dove vuoi che venga visualizzato il tuo menu, molto probabilmente all'interno del file header.php.
<?php if ( is_user_logged_in() ) { ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘primary’ ) ); } else { ks29so_nav_menu( array( ‘container_class’ => ‘menu-header’, ‘theme_location’ => ‘visitor’ ) ); };?>
Ora devi creare effettivamente il menu sul rovescio di WordPress. L'impostazione "Menu" dovrebbe essere nella scheda Aspetto. Crea un menu con il nome principale e visitatore. In entrambi i menu aggiungi quello che vuoi mostrare. Ad esempio: se vuoi che una pagina venga visualizzata solo quando l'utente ha effettuato l'accesso, aggiungila nel menu principale.
Puoi anche creare un menu dinamico a piè di pagina usando lo stesso metodo.
Campi personalizzati e hack di WordPress per i blogger
Puoi utilizzare WordPress per creare un sito Web personalizzato e dall'aspetto professionale. In questo post condividiamo alcuni trucchi e hack sul campo personalizzati di WordPress che ti permetteranno di avere un sito migliore basato su WordPress.
A volte potrebbero esserci blogger ospiti che scrivono solo un post sul tuo sito e basta. Puoi usare questo metodo per mostrare le normali informazioni sull'autore. Tieni presente che l'autore è stato registrato in WordPress. Forse, non vuoi registrarti ogni volta che scrive un nuovo autore ospite. Ma come fai a far sì che le informazioni sull'autore ospite vengano visualizzate nello stesso formato dell'autore normale? Campi personalizzati!
Nome dell'autore ospite nella prima pagina e nei singoli post
La prima cosa che dobbiamo fare è impostare un'istruzione if di WordPress per ottenere il valore del campo personalizzato. In questo modo verrà visualizzato solo quando viene assegnato il valore del file personalizzato. Apri il tuo "index.php" e "single.php" e incolla il seguente codice dove vuoi che venga visualizzato il nome dell'autore. Potrebbe essere dopo la data o dopo i commenti. Ad esempio dopo questo codice:
<?php the_time(‘M j, Y’) ?>
< ?php if ( get_post_meta($post->ID, 'guest_author_name', true) ) { ?> // check to see if custom field guest author name exists < ?php echo get_post_meta($post->ID, "guest_author_name", $single = true); ?> < ?php } ?>\
Una volta inserita l'istruzione if, la chiamiamo semplicemente su qualsiasi post desideriamo che venga visualizzato il nome dell'autore ospite. Il nome dell'autore ospite dovrebbe apparire in prima pagina e solo per post specifici.
Blocco delle informazioni dell'autore ospite sul singolo post
Ok, quindi abbiamo il nome che appare nella meta descrizione del post, ma anche alcune informazioni sull'autore ospite sarebbero utili.
Ancora una volta, per prima cosa abbiamo l'istruzione if condizionale che cerca il pollice e la descrizione dell'immagine dell'autore. Non dimenticare di cambiare l'immagine nella directory. Inoltre, abbiamo allegato una classe al blocco e al pollice, che consente di definire lo stile sia dell'immagine che del blocco utilizzando CSS.
<?php if ( get_post_meta($post->ID, ‘autho_thumb’, true) ) { ?> // checks to see if the custom field exist <div class="writer_bio"> <img class="autho_thumb" src="http://media.webdesignviews.com/author/<?php $values = get_post_custom_values("autho_thumb"); echo $values[0]; ?>" alt="Author Thumb" width="60" width="60" height="60" /><?php } ? <?php if ( get_post_meta($post->ID, ‘guest_author’, true) ) { ?> <?php echo get_post_meta($post->ID, "guest_author", $single = true); ?></div> <?php } ?>
Ecco il CSS che ho usato
.writer_bio { color: #666; background: #eee; text-transform: none !important; font-size: 13px; font-weight: normal; height: 75px; width: 600px; padding: 6px; padding-bottom: 6px; padding-left: 0; margin-bottom: 10px; } .writer_bio img { padding: 0 !important; float: left !important; margin-left: 4px !important; margin-top: 3px !important; border: 2px #ccc solid !important; height: 60px; }
Puoi persino dare più stile con la classe auto_thumb. Una volta fatto, tutto ciò che devi fare è aggiungere autho_thumb e guest_author nel campo e compilare le informazioni. Puoi anche aggiungere HTML come link nel campo personalizzato.
Quindi, hai due campi personalizzati per le informazioni sull'autore ospite. Potrebbero sembrare molti passaggi. Credimi una volta fatto, è solo questione di aggiungere l'immagine e la descrizione la prossima volta che vuoi farlo.
Campo personalizzato migliore per la visualizzazione dell'immagine del post in prima pagina
Questo metodo viene utilizzato per visualizzare un pollice per il post sulla parte anteriore. Volevo andare un po' oltre e rendere più facile per l'utente front-end. Inoltre, con il metodo di Jean tutte le immagini avrebbero lo stesso alt="post-image" e potrei non essere adatto ai motori di ricerca. Inoltre, dovresti includere ogni volta l'intero URL per le immagini. Innanzitutto ecco il codice:
<?php $postimageurl = get_post_meta($post->ID, ‘post-img’, true); // variable for image $image_alt = get_post_meta($post->ID, ‘post-img’, true);// variable for description // check if the the custom field is called if ($postimageurl) { ?> <a href="<?php the_permalink(); ?>" rel="bookmark"><img src="<?php echo $postimageurl; ?>" class= quot;post-img" alt="<?php echo $image_alt; ?>"; width="500" height="300" /></a> <?php } else { ?>
Prima di spiegare il codice, nota che non ho aggiunto un'istruzione else per un pollice predefinito. Guarda il post di Jean se desideri avere un'immagine predefinita se l'immagine è assegnata nel campo personalizzato.
Per prima cosa abbiamo due variabili $postimageurl e $image_alt. Il primo è ottenere la posizione dell'immagine e il secondo è aggiungere il nome dell'immagine. Quindi di nuovo impostiamo un'istruzione if per verificare se il campo personalizzato viene chiamato.
<?php echo get_option(‘siteurl’).‘/wp-content/uploads/thumb/’?>
La cosa diversa è sopra il codice che ottiene la posizione dell'immagine. Ho creato una cartella chiamata thumb nella mia directory di caricamento di WordPress, quindi invece di digitare l'intero URL ogni volta che digitavo semplicemente il nome dell'immagine, una volta caricata l'immagine nella cartella.
Se desideri una directory diversa, ad esempio memorizzerai le tue immagini nella radice del tuo dominio, sostituisci semplicemente <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>
<?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?>
con http://yourwebsite.com/images/<?php echo $postimageurl; ?>
http://yourwebsite.com/images/<?php echo $postimageurl; ?>
.
Quindi, il codice è leggermente modificato in modo che ogni immagine del post abbia un alt (titolo) diverso e dovresti digitare l'estensione del nome dell'immagine anziché l'intero URL.
Organizza la tua navigazione WordPress come vuoi
La prima cosa da sapere sono le pagine degli elenchi di wordpress che utilizzano il tag ks29so_list_pages, che di solito si trova in header.php. ma potresti non voler elencare tutte le tue pagine. Se vuoi nascondere alcune delle tue pagine dalla visualizzazione, dovresti farlo:
<?php ks29so_list_pages(‘include=7,13′ ); ?> //or <?php ks29so_list_pages(‘exclude=5,9′);? >
Escludi o includi funziona quasi allo stesso modo. Escludi ometterà alcune pagine dall'elenco delle pagine di WordPress e includerà solo l'ID delle pagine specificato. Tuttavia, alla maggior parte dei blog di web design o di qualsiasi altro blog piace utilizzare tag o categorie come navigazione. In tal caso, puoi semplicemente sbarazzarti del tag ks29so_list e personalizzare la navigazione. In alternativa, puoi farlo anche con i tuoi tag. Il vantaggio di codificare in questo modo puoi assegnare una classe CSS allo stile di ogni elemento della navigazione.
Di recente ho dovuto trovare un ID pagina per l'esclusione in un modello che stavo utilizzando e dopo circa 10 minuti ho finalmente trovato un modo semplice per trovare l'ID pagina di una "pagina" di WordPress.
Nelle versioni precedenti di WordPress, credo che fosse più semplice, ma ecco come puoi farlo ora.
- Vai nel pannello di amministrazione di WordPress, quindi vai su Pages.
- Quindi passa il mouse sulla pagina di cui vuoi conoscere l'ID.
- Vedrai l'ID nella barra di stato nella parte inferiore del browser (vedi sotto).
Se non riesci a vedere l'indirizzo completo, prova in un altro modo (più avanti).
- Vai nel pannello di amministrazione di WordPress, quindi vai su Pages.
- Quindi vedrai l'ID nella barra degli indirizzi. Sarà il numero dopo il segno di uguale.
- Fare clic sulla pagina di cui si desidera conoscere l'ID.
Visualizzazione dell'argomento dell'archivio
La maggior parte dei temi WordPress viene fornita con la pagina archive.php. Tuttavia, ho visto molti siti Web in cui le pagine dell'archivio non sono molto utili e non dicono agli utenti quale argomento o categorie stanno esplorando. Puoi aggiungere i seguenti codici nel tuo archive.php per evitare confusione.
<?php /* If this is a category archive */ if (is_category()) { ?> <h3 class="pagetitle">Current Browsing Topic: ‘<?php single_cat_title(); ?>’</h3> <?php /* If this is a tag archive */ } elseif( is_tag() ) { ?> <h3 class="pagetitle">Posts Tagged ‘<?php single_tag_title(); ?>’</h3>