Hackuri WordPress pentru site-ul web numai pentru membri

Publicat: 2020-05-19

În mod implicit, WordPress este un instrument de blogging. Cu toate acestea, puteți personaliza cu adevărat pentru a-l face așa cum doriți. Mulți oameni folosesc WordPress pentru a crea un site web exclusiv pentru membri.

Puteți folosi oricând un plugin, dar dacă aveți nevoie doar de o mică modificare, de ce să instalați un plugin când o puteți face cu câteva linii de cod. Iată câteva trucuri simple, dar eficiente pentru a crea un site exclusiv pentru membri.

Conținut numai pentru membri fără plugin

Dacă există un anumit conținut pe site-ul dvs. pe care doriți să-l afișați numai membrului înregistrat, puteți face acest lucru folosind următorul cod din tema dvs. Orice se întâmplă între is_user_logged_in va fi văzut numai de membri.

<?php if ( is_user_logged_in() ) { ?>
// Content for Logged in user
<?php } else {?>
// Content for everyone else
<?php }?>

WordPress Hacks for Members Only Website

Afișați formularul de conectare WordPress oriunde și personalizați-l

Dacă doriți să includeți formularul de autentificare WordPress oriunde în tema dvs., puteți face acest lucru folosind următoarea funcție:

<?php ks29so_login_form(); ?>

Cu toate acestea, nu vă oferă opțiunea de a personaliza formularul de autentificare, deoarece trage direct formularul implicit de autentificare WordPress. Dacă vrei să arăți așa ceva?

Iată codul pentru a face asta. Lipiți următorul cod oriunde doriți să apară formularul.

// 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 &nbsp<?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 }?>

Puteți adăuga o etichetă CSS div pentru a-i stila. Avantajul utilizării acestui formular de autentificare puteți crea aproape un mini tablou de bord pentru membri folosind funcția get_currentuserinfo() și arătați orice informații despre utilizator.

Meniu WordPress personalizat pentru membri

La fel ca și conținutul, puteți crea un meniu WordPress personalizat pentru membri. Să înregistrăm mai întâi meniul. Accesați fișierul de funcție a temei (functions.php). Utilizați următorul cod pentru a înregistra meniurile.

register_nav_menus( array(
‘primary’ => __( ‘Primary Navigation’, ‘twentyten’ ),
‘visitor’ => __( ‘Visitor Navigation’, ‘twentyten’ ),
‘footer’ => __( ‘Footer Navigation’, ‘twentyten’ ),
) );

Acum, pune următorul cod acolo unde vrei să apară meniul tău, cel mai probabil în fișierul 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’ ) );
};?>

Acum trebuie să creați meniul pe WordPress backhand. Setarea „Meniuri” ar trebui să fie în fila Aspect. Creați un meniu cu numele principal și vizitator. În ambele meniuri adăugați ceea ce doriți să afișați. De exemplu: dacă doriți ca o pagină să apară numai atunci când utilizatorul este conectat, adăugați-o în meniul principal.

De asemenea, puteți crea un meniu dinamic de subsol folosind aceeași metodă.

Câmpuri personalizate WordPress și hack-uri pentru bloggeri

Puteți utiliza WordPress pentru a crea un site web personalizat și cu aspect profesional. În această postare, împărtășim câteva trucuri și hack-uri personalizate WordPress care vă vor permite să aveți un site WordPress mai bun.

Uneori ar putea exista bloggeri invitați care scriu doar o postare pe site-ul tău și atât. Puteți folosi această metodă pentru a afișa informații regulate despre autor. Rețineți că autorul a fost înregistrat în WordPress. Poate că nu doriți să vă înregistrați de fiecare dată când scrie un nou autori invitați. Dar, cum poți face ca informațiile despre autorul invitat să apară în același format ca autorul obișnuit? Câmpuri customizate!

Numele autorului invitat în prima pagină și în postările individuale

Primul lucru pe care trebuie să-l facem este să setăm o declarație WordPress if pentru a obține valoarea câmpului personalizat. În acest fel, va apărea numai când este atribuită valoarea fișierului personalizat. Deschideți „index.php” și „single.php” și inserați următorul cod unde doriți să apară numele autorului. Ar putea fi după dată sau după comentarii. De exemplu, după acest cod:

<?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 } ?>\

Odată ce punem declarația if, o numim în orice postare dorim să apară numele autorului invitat. Numele autorului invitat ar trebui să apară pe prima pagină și numai pentru o anumită postare.

Bloc de informații despre autor invitat pe postarea individuală

Bine, deci avem numele afișat în metadescrierea postării, dar unele informații despre autorul invitat ar fi și ele bune.

Din nou, mai întâi avem declarația condițională if care caută imaginea mare și descrierea autorului. Nu uitați să schimbați imaginea din director. De asemenea, am atașat o clasă la bloc și degetul mare, care permite stilarea atât a imaginii, cât și a blocului folosind 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 } ?>

Iată CSS-ul pe care l-am folosit

.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;
}

Chiar și mai mult stil cu clasa autho_thumb. Odată ce este făcut, tot ce trebuie să faceți este să adăugați autho_thumb și guest_author în câmp și să completați informațiile. Puteți chiar să adăugați HTML, cum ar fi linkul în câmpul personalizat.

Deci, acolo aveți două câmpuri personalizate pentru informații despre autorul invitat. Acest lucru poate părea o mulțime de pași. Crede-mă odată ce ai făcut-o, este doar o chestiune de a adăuga imaginea și descrierea data viitoare când vrei să o faci.

Câmp personalizat mai bun pentru afișarea imaginii postării pe prima pagină

Această metodă este folosită pentru a afișa un deget mare pentru post pe față. Am vrut să o duc puțin mai departe și să fac mai ușor pentru utilizatorul front end. De asemenea, cu metoda lui Jean, fiecare imagine ar avea același alt=”post-image” și s-ar putea să nu fiu bun pentru motoarele de căutare. Mai mult, ar trebui să includeți de fiecare dată întreaga adresă URL pentru imagini. Mai întâi iată codul:

<?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 { ?>

Înainte de a explica codul, observați că nu am adăugat o declarație else pentru degetul mare implicit. Uitați-vă la postarea lui Jean dacă doriți să aveți o imagine implicită, dacă imaginea este atribuită în câmpul personalizat.

Mai întâi avem două variabile $postimageurl și $image_alt. Prima este să obțineți locația imaginii, iar a doua este să adăugați numele imaginii. Apoi, din nou, setăm o instrucțiune if pentru a verifica dacă câmpul personalizat este apelat.

<?php echo get_option(‘siteurl’).‘/wp-content/uploads/thumb/’?>

Lucrul diferit este codul de mai sus care obține locația imaginii. Am creat un folder numit degetul mare în directorul meu de încărcare WordPress, așa că, în loc să tast întreaga adresă URL de fiecare dată, aș introduce doar numele imaginii, odată ce am încărcat imaginea în folder.

Dacă doriți un director diferit, cum ar fi să presupunem că ați stoca imaginile în rădăcina domeniului dvs., trebuie să înlocuiți <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?> <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?> cu http://yourwebsite.com/images/<?php echo $postimageurl; ?> http://yourwebsite.com/images/<?php echo $postimageurl; ?> .

Deci, codul este puțin modificat, astfel încât fiecare imagine de postare să aibă un alt alt (titlu) și să tastați extensia numelui imaginii, mai degrabă decât adresa URL completă.

Aranjați-vă navigarea WordPress cum doriți

Primul lucru de știut sunt paginile cu liste wordpress care folosesc eticheta ks29so_list_pages, care se află de obicei în header.php. dar este posibil să nu doriți să enumerați toate paginile dvs. Dacă doriți să ascundeți unele dintre paginile dvs. pentru a nu afișa, ați proceda astfel:

<?php ks29so_list_pages(‘include=7,13′ ); ?>
//or
<?php ks29so_list_pages(‘exclude=5,9′);? >

Excluderea sau includerea funcționează aproape în același mod. Exclude va omite anumite pagini din lista de pagini WordPress și include afișează numai ID-ul paginilor pe care îl specificați. Cu toate acestea, cele mai multe dintre blogurile de web design sau orice alte bloguri le place să folosească etichete sau categorii ca navigare. În acest caz, puteți pur și simplu să scăpați de eticheta ks29so_list și să codificați personalizat navigarea. Alternativ, puteți face asta și cu etichetele dvs. Beneficiul codificării în acest fel puteți atribui clasa CSS pentru a stila fiecare element al navigației.

Cum să găsiți ID-ul paginii dvs. WordPress

Recent a trebuit să găsesc un ID de pagină pentru excludere într-un șablon pe care îl foloseam și, după aproximativ 10 minute, am găsit în sfârșit o modalitate ușoară de a găsi ID-ul paginii unei „pagini” WordPress.

În versiunile mai vechi de WordPress, cred că acest lucru a fost mai ușor, dar iată cum o puteți face acum.

  1. Accesați panoul de administrare WordPress, apoi accesați Pagini.
  2. Apoi treceți cu mouse-ul peste pagina căreia doriți să aflați ID-ul.
  3. Veți vedea ID-ul în bara de stare din partea de jos a browserului (vezi mai jos).

Dacă nu puteți vedea adresa completă, încercați o altă modalitate (mai jos).

  1. Accesați panoul de administrare WordPress, apoi accesați Pagini.
  2. Apoi veți vedea ID-ul în bara de adrese. Va fi numărul de după semnul egal.
  3. Faceți clic pe pagina pentru care doriți să aflați ID-ul.

Se afișează subiectul din arhivă

Majoritatea temelor WordPress vin cu pagina archive.php. Dar, am văzut multe site-uri web în care paginile de arhivă nu sunt foarte utile și nu le spun utilizatorilor ce subiect sau categorii navighează. Puteți adăuga următoarele coduri în archive.php pentru a evita confuzia.

<?php /* If this is a category archive */ if (is_category()) { ?>
<h3 class="pagetitle">Current Browsing Topic: &#8216;<?php single_cat_title(); ?>&#8217;</h3>
<?php /* If this is a tag archive */ } elseif( is_tag() ) { ?>
<h3 class="pagetitle">Posts Tagged &#8216;<?php single_tag_title(); ?>&#8217;</h3>