WordPress Hacks tylko dla członków witryny

Opublikowany: 2020-05-19

Domyślnie WordPress jest narzędziem do blogowania. Niemniej jednak możesz naprawdę dostosować, aby uczynić go tak, jak chcesz. Wiele osób korzysta z WordPressa do tworzenia witryn tylko dla członków.

Zawsze możesz użyć wtyczki, ale jeśli potrzebujesz tylko niewielkiej modyfikacji, po co instalować wtyczkę, jeśli możesz to zrobić za pomocą kilku linijek kodu. Oto kilka prostych, ale skutecznych hacków do tworzenia witryny tylko dla członków.

Treść tylko dla członków bez wtyczki

Jeśli w Twojej witrynie znajdują się pewne treści, które chcesz pokazać tylko zarejestrowanemu członkowi, możesz to zrobić, używając następującego kodu w swoim motywie. Cokolwiek znajdzie się pomiędzy is_user_logged_in , będzie widoczne tylko dla członków.

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

WordPress Hacks for Members Only Website

Pokaż formularz logowania WordPress w dowolnym miejscu i dostosuj go

Jeśli chcesz umieścić formularz logowania WordPress w dowolnym miejscu w swoim motywie, możesz to zrobić za pomocą następującej funkcji:

<?php ks29so_login_form(); ?>

Nie daje jednak możliwości dostosowania formularza logowania, ponieważ bezpośrednio pobiera domyślny formularz logowania WordPress. A jeśli chcesz coś takiego pokazać?

Oto kod, który to zrobi. Wklej następujący kod w dowolnym miejscu, w którym chcesz wyświetlić formularz.

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

Możesz dodać tag div CSS, aby nadać mu styl. Zaletą korzystania z tego formularza logowania jest prawie stworzenie mini dashboardu dla członków za pomocą funkcji get_currentuserinfo() i wyświetlenie dowolnych informacji o użytkowniku.

Niestandardowe menu WordPress dla członków

Podobnie jak zawartość, możesz stworzyć niestandardowe menu WordPress dla członków. Zarejestrujmy najpierw menu. Przejdź do pliku funkcji motywu (functions.php). Użyj poniższego kodu, aby zarejestrować menu.

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

Teraz umieść poniższy kod w miejscu, w którym chcesz wyświetlić menu, najprawdopodobniej w pliku 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’ ) );
};?>

Teraz musisz faktycznie stworzyć menu na backhandu WordPress. Ustawienie „Menu” powinno znajdować się w zakładce Wygląd. Utwórz menu z nazwą główny i gość. W obu menu dodaj to, co chcesz pokazać. Na przykład: jeśli chcesz, aby strona wyświetlała się tylko wtedy, gdy użytkownik jest zalogowany, dodaj ją w menu głównym.

W ten sam sposób możesz również utworzyć dynamiczne menu stopki.

Niestandardowe pola WordPress i hacki dla blogerów

Możesz użyć WordPressa, aby stworzyć niestandardową i profesjonalnie wyglądającą stronę internetową. W tym poście dzielimy się kilkoma niestandardowymi sztuczkami i hackami WordPress, które pozwolą Ci mieć lepszą witrynę zasilaną WordPress.

Czasami mogą pojawić się gościnni blogerzy, którzy piszą tylko jeden post w Twojej witrynie i to wszystko. Możesz użyć tej metody, aby wyświetlić zwykłe informacje o autorze. Pamiętaj, że autor został zarejestrowany w WordPress. Może nie chcesz rejestrować się za każdym razem, gdy pisze nowy gość autorów. Ale w jaki sposób nadal można uzyskać informacje o autorze gości w tym samym formacie, co zwykły autor? Pola niestandardowe!

Imię i nazwisko autora gościa na stronie głównej i poszczególnych postach

Pierwszą rzeczą, którą musimy zrobić, jest ustawienie instrukcji WordPress if, aby uzyskać wartość pola niestandardowego. W ten sposób pojawi się tylko wtedy, gdy przypisana zostanie niestandardowa wartość pliku. Otwórz swoje „index.php” i „single.php” i wklej następujący kod, w którym chcesz, aby pojawiła się nazwa autora. Może być po dacie lub po komentarzach. Na przykład po tym kodzie:

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

Po umieszczeniu instrukcji if po prostu wywołujemy ją w dowolnym poście, w którym chcesz, aby pojawiło się nazwisko autora gościa. Imię i nazwisko autora gościa powinno pojawiać się na stronie głównej i tylko w przypadku konkretnego postu.

Blok informacji o autorze gości w indywidualnym poście

Okej, więc mamy imię i nazwisko pojawiające się w meta opisie posta, ale niektóre informacje o autorze gościa też byłyby miłe.

Ponownie, najpierw mamy warunkową instrukcję if, która szuka kciuka obrazu autora i opisu. Nie zapomnij zmienić obrazu katalogu. Ponadto do bloku i kciuka dołączyliśmy klasę, która pozwala stylizować zarówno obraz, jak i blok za pomocą 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 } ?>

Oto CSS, którego użyłem

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

Jeszcze bardziej stylizujesz z klasą autho_thumb. Gdy to zrobisz, wszystko, co musisz zrobić, to dodać autho_thumb i guest_author w polu i wypełnić informacje. Możesz nawet dodać kod HTML, taki jak link w polu niestandardowym.

Masz więc dwa niestandardowe pola na informacje o autorze gościa. Może się wydawać, że to wiele kroków. Zaufaj mi, że raz to zrobiłem, to tylko kwestia dodania zdjęcia i opisu następnym razem, gdy będziesz chciał to zrobić.

Lepsze pole niestandardowe do wyświetlania obrazu posta na pierwszej stronie

Ta metoda służy do wyświetlania kciuka dla słupka z przodu. Chciałem pójść trochę dalej i ułatwić front-endowi użytkownikowi. Ponadto przy metodzie Jeana każdy obrazek miałby to samo alt=”post-image” i mogę nie być dobry dla wyszukiwarek. Co więcej, za każdym razem musiałbyś podać cały adres URL obrazów. Najpierw oto kod:

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

Zanim wyjaśnię kod, zauważ, że nie dodałem instrukcji else dla domyślnego kciuka. Spójrz na post Jeana, jeśli chcesz mieć domyślny obraz, jeśli tak jest przypisany w polu niestandardowym.

Najpierw mamy dwie zmienne $postimageurl i $image_alt. Pierwszym z nich jest pobranie lokalizacji obrazu, a drugim dodanie nazwy obrazu. Następnie ponownie ustawiamy instrukcję if, aby sprawdzić, czy niestandardowe pole zostanie wywołane.

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

Inną rzeczą jest powyżej kodu, który pobiera lokalizację obrazu. Utworzyłem folder o nazwie thumb w moim katalogu przesyłania WordPress, więc zamiast wpisywać cały adres URL za każdym razem, gdy wpisywałbym nazwę obrazu, po przesłaniu obrazu do folderu.

Jeśli chcesz mieć inny katalog, taki jak powiedzmy, że przechowujesz swoje obrazy w katalogu głównym domeny, po prostu zastąp <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?> <?php echo get_option('siteurl').'/wp-content/uploads/thumb/ ?><?php echo $postimageurl; ?> z http://yourwebsite.com/images/<?php echo $postimageurl; ?> http://yourwebsite.com/images/<?php echo $postimageurl; ?> .

Tak więc kod jest trochę zmodyfikowany, więc każdy obraz posta miałby inny alt (tytuł) i należałoby wpisać rozszerzenie nazwy obrazu, a nie cały adres URL.

Ułóż swoją nawigację WordPress tak, jak chcesz

Pierwszą rzeczą, którą należy wiedzieć, są strony z listami wordpress, które wykorzystują znacznik ks29so_list_pages, który zwykle znajduje się w pliku header.php. ale możesz nie chcieć wymieniać wszystkich swoich stron. Jeśli chcesz ukryć wyświetlanie niektórych stron, zrób tak:

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

Wykluczenie lub uwzględnienie działa prawie w ten sam sposób. Wyklucz spowoduje pominięcie niektórych stron z listy stron WordPress i uwzględni tylko pokazanie określonego przez Ciebie identyfikatora stron. Jednak większość blogów zajmujących się projektowaniem stron internetowych lub innych blogów lubi używać tagów lub kategorii jako nawigacji. W takim przypadku możesz po prostu pozbyć się tagu ks29so_list i niestandardowego kodu nawigacji. Alternatywnie możesz to zrobić również za pomocą tagów. Zaletą kodowania w ten sposób można przypisać klasę CSS do stylu każdego elementu nawigacji.

Jak znaleźć swój identyfikator strony WordPress

Niedawno musiałem znaleźć identyfikator strony do wykluczenia w szablonie, którego używałem, i po około 10 minutach w końcu znalazłem łatwy sposób na znalezienie identyfikatora strony „strony” WordPress.

Uważam, że w starszych wersjach WordPressa było to łatwiejsze, ale oto jak możesz to zrobić teraz.

  1. Przejdź do panelu administracyjnego WordPressa, a następnie przejdź do Strony.
  2. Następnie najedź kursorem na stronę, której identyfikator chcesz poznać.
  3. Zobaczysz identyfikator na pasku stanu na dole przeglądarki (patrz poniżej).

Jeśli nie widzisz pełnego adresu, spróbuj w inny sposób (poniżej).

  1. Przejdź do panelu administracyjnego WordPressa, a następnie przejdź do Strony.
  2. Następnie zobaczysz identyfikator w pasku adresu. Będzie to liczba po znaku równości.
  3. Kliknij stronę, której identyfikator chcesz poznać.

Wyświetlam temat archiwum

Większość motywów WordPress zawiera stronę archive.php. Ale widziałem wiele witryn, w których strony archiwum nie są zbyt pomocne i nie mówią użytkownikom, jaki temat lub kategorie przeglądają. Możesz dodać następujące kody do pliku archive.php, aby uniknąć nieporozumień.

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