Jak usunąć FEED (RSS) z nagłówka WordPress?

WordPress mimo tego, że jest system do prowadzenia blogów internetowych często jest też używany do prowadzenia stron firmowych albo prywatnych, na których niekoniecznie chcemy udostępniać kanał RSS, chociażby z powodu rzadkich aktualizacji.

Linki /feed/ dodawane są przez funkcję wp_head(), która najczęściej znajduje się w header.php (w zależności od szablonu). Można usunąć całe wp_head(), ale może się zdarzyć, że tym samym ograniczymy funkcjonalność WordPress’a, bo wyłączymy np. ładowanie jQuery, albo innych skryptów niezbędnych do działania pluginów.
Takie rozwiązanie zatem odpada.

Innym rozwiązaniem jest zmiana w pliku /wp-includes/feed.php i usunięcie (albo skomentowanie) linijki kodu odpowiedzialnej za feed:

function get_default_feed() {
	//return apply_filters('default_feed', 'rss2');
}

To rozwiązanie ma z kolei taki mankament, że jeśli zaktualizujemy WordPress’a to plik feed.php również zostanie zaktualizowany i będziemy musieli ponownie wykonać powyższą operację usunięcia feed… a kto będzie o tym pamiętał? ;)

Dlatego zdecydowanie najlepszym rozwiązaniem jest znalezione przeze mnie po dobrych paru chwilach poszukiwań i sprawdzaniu różnych opcji – dodanie fragmentu kodu do pliku functions.php, który znajduje się w katalogu z naszym szablonem.
Wystarczy dodać coś takiego:

remove_action( 'wp_head', 'feed_links_extra', 3 ); // Wyświetla linki do dodatkowych feed (np. dla kategorii)
remove_action( 'wp_head', 'feed_links', 2 ); // Wyświetla linki do głównych feed (wpisy i komentarze)

Dzięki temu rozwiązaniu pozbędziemy się niechcianych linków do feed’ów i w przyszłości nie będziemy musieli pamiętać o konieczności zmiany czegokolwiek po aktualizacji WordPressa.

Na podstawie forum WordPress

Opublikowano modyfikacje wordpress, wordpress tips and tricks | Skomentuj

Wycinek bez obrazków i z indywidualnym tekstem „Więcej”

W trakcie realizacji strony opartej na Wordpresie natrafiłem na problem z wyświetlaniem aktualności.

Zawierały one zdjęcia, których nie chciałem pokazywać na stronie głównej (miały być widoczne dopiero po wejściu w newsa). Wszystko co chciałem wyświetlić to fragment treści i linka „Więcej”.

Jednym ze sposób zrobienia tego jest użycie tagu the_content() i filtru, który usunie z zawartości obrazki. Niestety mimo kilku prób nie udało mi się tego dopracować, a nie miałem czasu żeby spędzić nad tym kolejną noc ;)

Dlatego użyłem the_excerpt().

Funkcja ta nie posiada żadnych parametrów. Wyświetla ona 55 pierwszych słów z zawartości posta przy czym – nie wyświetla obrazków – więc spełniła moje warunki. Poza jednym… zamiast ładnego „więcej” albo trzech kropeczek na końcu tekstu, co byłoby linkiem do wpisu pojawiło się „Continue Reading”.

Poszukałem i znalazłem funkcję, która zamienia Continue Reading na dowolny tekst:

function new_excerpt_more($post) {
	return '<a href="'. get_permalink($post->ID) . '">' . 'Więcej...' . '</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');

Funkcję należy dodać do pliku functions.php, który znajduje się w katalogu z szablonem.
Oczywiście w miejsce

'Więcej...'

możemy wstawić co nam się żywnie podoba.

Opublikowano no-category-no-cry | Skomentuj

Jak wyświetlić informację o zalogowanym użytkowniku

Projektując szablon do WordPress’a czasami istnieje potrzeba, aby wyświetlić informację o aktualnie zalogowanym użytkowniku. Możemy do tego użyć takiego kawałka kodu:
<?php  if (is_user_logged_in()) {
          $user = wp_get_current_user();
          echo 'Witaj <strong>'.$user->display_name.'</strong> !';
                        } else { ?>
          Proszę <strong><?php wp_loginout(); ?></strong>
          lub <a href="<?php echo get_option('home'); ?>/wp-login.php?action=register"><strong>Zarejestruj</strong></a>
          <?php } ?>
Ten powyższy kawałek kodu wyświetla:
  • jeśli użytkownik nie jest zalogowany: Proszę zaloguj się lub Zarejestruj
  • jeśli jest zalogowany: Witaj NazwaUżytkownika

Możemy również dodać link do wylogowania dla zalogowanego użytkownika:

<a href="<?php echo wp_logout_url(); ?>" title="Wyloguj">Wyloguj się</a>

Po zmianach kod ostatecznie będzie wyglądał tak:

<?php  if (is_user_logged_in()) {
          $user = wp_get_current_user();
          echo 'Witaj <strong>'.$user->display_name.'</strong> !'; ?>
          <a href="<?php echo wp_logout_url(); ?>" title="Wyloguj">Wyloguj się</a>
                 <?php  } else { ?>
          Proszę <strong><?php wp_loginout(); ?></strong>
          lub <a href="<?php echo get_option('home'); ?>/wp-login.php?action=register"><strong>Zarejestruj</strong></a>
          <?php } ?>

Jeśli chcemy na stronie umieścić formularz do logowania, to możemy to zrobić na 2 sposoby.

Pierwszy z nich to najprostszy i najszybszy – ściągamy odpowiedni plugin, np. Sidebar Login. Instalujemy i dodajemy okienko logowania do Widgetów. To jest najszybsze rozwiązanie.

Gdy chcemy okienko logowania wstawić w dowolnie wybranym miejscu w szablonie konieczne jest zmodyfikowanie szablonu i dodanie kawałka kodu:

<?php wp_login_form('label_username=Użytkownik&redirect=/strona-przekierowanie-po-logowaniu'); ?>
Jak widać możemy ustawić własne parametry pola logowania – np. jaki ma być tytuł etykiety nazwa użytkownika oraz na jaką stronę WordPress ma przekierować użytkownika po zalogowaniu się.

Opublikowano modyfikacje wordpress, wordpress tips and tricks | Skomentuj

Aktywacja użytkownika przez Administratora

WordPress domyślnie po rejestracji użytkownika wysyła na podany adres email login i hasło i de facto bez naszej wiedzy i kontroli użytkownik może mieć dostęp do strony. Oczywiście gdy prowadzimy bloga to jest to bardzo korzystne i proste rozwiązanie.Ale w przypadku, gdy naszego WordPressa wykorzustujemy np. do prowadzenia strony firmowej gdzie znajduje się część dla partnerów/kontrahentów, to takie "automatyczne" rejestrowanie użytkowników może być niebezpieczne.

Problem ten można rozwiązać w prosty sposób przy pomocy pluginu New User Approve.

Plugin ten po zarejestrowaniu się użytkownika wysyła do administratora informację o nowym użytkowniku i czeka na zatwierdzenie lub odrzucenie użytkownika. Jesli użytkownik zostaniej zatwierdzony – emailem otrzyma login i hasło. Jeśli użytkownik zostanie odrzucony – użytkownik zostanie o tym fakcie poinformowany.

Opublikowano pluginy wordpress, wordpress tips and tricks | Skomentuj

Jak usunąć „Prywatny” z tytułu strony WordPress

WordPress posiada możliwość oznaczenia każdej strony jako

  • Publiczne (dostępne dla wszystkich)
  • Zabezpieczeone hasłem (dostępne po wpisaniu hasła, które np. możemy wysłac hasłem, albo podać przez telefon)
  • Prywatne (dostępne po zarejestrowaniu i zalogowaniu użytkownika)

W tym drugim i trzecim przypadku – Zabezpieczone hasłem, Prywatne tytuł strony będzie poprzedzony hasłem: "Zabezpieczony" albo "Prywatny". Czasami jednak istnieje potrzeba, aby tytuł strony wyświetlnić bez takich dodatków.

Możemy oczywiście poszukać w WordPressie funkcji, która odpowiada za wyświetlanie tytułów, ale może się zdarzyć, że po aktualizacji WordPress’a hasło: Zabezpieczony/Prywatny znowu się pojawi.

Zdecydowanie lepszym rozwiązaniem jest dodanie funkcji do pliku functions.php naszego szablonu (znajduje się on w katalogu z szablonem WordPress’a).

Wystarczy, że do ww. pliku dodamy krótką funkcję, która spowoduje usunięcie z tytułów tych niepotrzebnych słów.

function remove_private_prefix($title) {
	$title = str_replace( 'Prywatny:','',$title);
	return $title;
	}
add_filter('the_title','remove_private_prefix');

Oczywiście jeśli chcemy usuwać zarówno słowo "Prywatny:" jak i "Zabezpieczony:" to funkcję zapisujemy 2 razy zmieniając odpowiednie słowo.

Opublikowano wordpress tips and tricks | Skomentuj