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 zrobić to, co 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]
<?php if ( is_user_logged_in() ) { ?>
// Treść dla zalogowanego użytkownika
<?php } jeszcze {?>
// Treść dla wszystkich innych
<?php }?>
[/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]
<?php ks29so_login_form(); ?>
[/php]

Nie daje jednak opcji dostosowania formularza logowania, ponieważ po prostu pobiera domyślny formularz logowania WordPress. A jeśli chcesz coś takiego pokazać?

Oto kod, który to zrobi. Wklej poniższy kod w dowolnym miejscu, w którym chcesz wyświetlić formularz.

[php]
// Formularz logowania WordPress
<?php if (!(current_user_can('poziom_0′))){ ?>
<h3>Logowanie członka</h3>
<form action="<?php echo get_option('home'); ?>/wp-login.php" method="post">
<table width='100%' cellpacing="0" cellpadding="0">
<tr>
<td>
<label><?php _e( 'Nazwa użytkownika') ?></label>
<input type="text" name="log" class="input" value="<?php echo attribute_escape(stripslashes($user_login)); ?>" />
</td>
<td>
<label><?php _e( 'Hasło') ?></label>
<input type="hasło" name="hasło" 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('Zgubione i znalezione hasło') ?>">< ?php _e('Zapomniałeś hasła?') ?></a>
</td>
<td>
<input type="prześlij" name="prześlij" value="Zaloguj się" class="przycisk" />
<input type="ukryty" name="redirect_to" value="http://<?php echo $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'] ?>" />
</td>
</tr>
</table>
</form>
<?php } jeszcze { ?>
<!– Gdy użytkownik się zalogował Pokaż następujące informacje –>
<h2>Wyloguj</h2>
<?php get_currentuserinfo();?>
Witamy ponownie &nbsp<?php echo($current_user->user_login . " ");?><br />
<a href="<?php echo ks29so_logout_url(urlencode($_SERVER['REQUEST_URI'])); ?>">Wyloguj się</a><br />
<a href="<?php echo get_admin_url(); ?>">Administrator?</a><!– Jeśli jesteś administratorem, przejdź do panelu administratora –>
<?php }?>
[/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.

[php]
register_nav_menus( tablica (
'primary' => __( 'Nawigacja podstawowa', 'dwadzieścia' ),
'gość' => __( 'Nawigacja odwiedzających', 'dwadzieścia' ),
'footer' => __( 'Nawigacja stopką', 'dwadzieścia' ),
) );
[/php]

Teraz umieść następujący kod w miejscu, w którym chcesz wyświetlić menu, najprawdopodobniej w pliku header.php.

[php]
<?php
if ( is_user_logged_in() ) {
ks29so_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) );
} w przeciwnym razie {
ks29so_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'gość' ) );
};?>
[/php]

Teraz musisz faktycznie utworzyć 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 napiszą 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ścia, aby wyświetlały się 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 if w WordPress, 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 miejscu, 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]
<?php the_time('M j, Y') ?>
[/php]
[php]
< ?php if ( get_post_meta($post->ID, 'guest_author_name', true)) { ?>
// sprawdź, czy istnieje niestandardowe pole nazwisko autora gościa
< ?php echo get_post_meta($post->ID, "goest_author_name", $single = true); ?>
< ?php } ?>\
[/php]

Po umieszczeniu instrukcji if po prostu wywołujemy ją w dowolnym poście, który chcemy, 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 posta.

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

Okej, więc mamy nazwę wyświetlaną w meta opisie posta, ale trochę informacji o autorze gościa też byłoby 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]
<?php if ( get_post_meta($post->ID, 'autho_thumb', true)) { ?> // sprawdza, czy pole niestandardowe istnieje
<div class="writer_bio">
<img class="autho_thumb" src="http://media.webdesignviews.com/author/<?php $values ​​= get_post_custom_values("auto_thumb"); echo $values[0]; ?>" alt="Kciuk autora "szerokość="60"szerokość="60"wysokość="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 } ?>
[/php]

Oto CSS, którego użyłem

[css]
.writer_bio {
kolor: #666;
tło: #eee;
transformacja tekstu: brak !ważne;
rozmiar czcionki: 13px;
grubość czcionki: normalna;
wysokość: 75px;
szerokość: 600px;
wypełnienie: 6px;
dopełnienie-dolne: 6px;
dopełnienie lewe: 0;
margines-dolny: 10px;
}
.writer_bio obraz {
dopełnienie: 0 !ważne;
float: lewo !ważne;
margines lewy: 4px !ważne;
margines-górny: 3px !ważne;
obramowanie: 2px #ccc solid !ważne;
wysokość: 60px;
}
[/css]

Jeszcze bardziej stylizujesz z klasą autho_thumb. Gdy to zrobisz, wystarczy dodać w polach autho_thumb i guest_author i uzupełnić informacje. Możesz nawet dodać kod HTML, taki jak link w polu niestandardowym.

Tak więc masz 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]
<?php $postimageurl = get_post_meta($post->ID, 'post-img', prawda);
// zmienna dla obrazu
$image_alt = get_post_meta($post->ID, 'post-img', true);// zmienna opisu
// sprawdź, czy niestandardowe pole nazywa się
jeśli ($postimageurl) {
?>
<a href="<?php the_permalink(); ?>" rel="zakładka"><img src="<?php echo $postimageurl; ?>" class=
quot;post-img" alt="<?php echo $image_alt; ?>"; szerokość="500" wysokość="300" /></a>
<?php } jeszcze { ?>
[/php]

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]
<?php echo get_option('siteurl').'/wp-content/uploads/thumb/'?>
[/php]

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]
<?php ks29so_list_pages('include=7,13′ ); ?>
//lub
<?php ks29so_list_pages('exclude=5,9′);? >
[/php]

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 identyfikatora strony, który określisz. 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źć identyfikator swojej 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]
<?php /* Jeśli to jest archiwum kategorii */ if (is_category()) { ?>
<h3 class="pagetitle">Aktualny temat przeglądania: &#8216;<?php single_cat_title(); ?>&#8217;</h3>
<?php /* Jeśli to jest archiwum tagów */ } elseif( is_tag() ) { ?>
<h3 class="pagetitle">Posty otagowane &#8216;<?php single_tag_title(); ?>&#8217;</h3>
[/php]