[WordPress] Nie wyświetla się zawartość kategorii

Witam serdecznie.

Po zaktualizowaniu wordpressa 2.9.2 do 3.3.1 byłem zmuszony zmienić używany do tej pory szablon. Niestety pojawił się problem z wyświetlaniem zawartości kategorii, są one puste. Problem pojawia się tylko na domenie, na którą ustawione jest w panelu admina przekierowanie (adres plików WP jest inny niż adres strony). Pod “bazową” domeną wszystko działa jak należy.

Szablon, o którym mowa, posiada dość ciekawą nawigację po kategoriach. Jej działanie można zobaczyć tutaj (demo zakupionego przeze mnie szablonu): http://deluxethemes.com/newsworld/

Coś mi świta, że może potrzebna jest jakaś modyfikacja w pliku .htaccess, więc wklejam jego obecną treść:

RewriteEngine On

    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

Bardzo proszę o pomoc. To dość pilne, ponieważ unieruchomiona jest strona sporej organizacji charytatywnej.

Podaj więcej informacji - adres strony, jakie przekierowanie, jaka struktura katalogowa

Niestety strona jest obecnie niedostępna publicznie, także jej adres będzie nieprzydatny. Jeśli chodzi o przekierowanie, moja wiedza pozwala na udzielenie następujących informacji: Strona posiada “domyślną (darmową) domenę” firmy hostingowej (tutaj znajdują się pliki). W panelu DirectAdmina podpięta została druga “wykupiona domena”, która jakby maskuje “oryginalną” lokalizację plików, katalogów, etc. W katalogu public_html dla tej “domyślnej (darmowej) domeny” znajdują się pliki wordpressa.

Natomiast w panelu admina wordpress ustawiona jest inna ścieżka do wordpressa oraz inna do strony, według schematu: Adres wordpressa - “darmowa, domyślna domena” / Adres strony - “wykupiona, podpięta w DirectAdminie domena”).

Kategorie wyświetlają się prawidłowo tylko jeśli skorzystamy z “domyślnej, darmowej domeny”, która bezpośrednio kieruje do plików, katalogów wordpressa. Ogólnie mam wrażenie, że to całe przekierowanie, czy podpięcie domeny jest źle zrobione. Mam rację ?

Nie do końca czaję o co chodzi.

Jeżeli miałeś WP instalowanego jeszcze przed podpięciem domeny, a chcesz by szło wszystko po tej właśnie domenie - to najprościej podmienić w bazie wszystkie adresy

update skan_posts set guid = replace(guid, 'http://staradomena', 'http://nowadomena')

update skan_posts set post_content = replace(post_content, 'http://staradomena', 'http://nowadomena')

update skan_options set option_value = replace(option_value, 'http://staradomena', 'http://nowadomena')

Już tłumaczę.

Problem z nowym szablonem polega na tym, że zawartość poszczególnych kategorii jest niewidoczna w przypadku korzystania z domeny będącej aliasem. Jeżeli użyjemy domeny, w której katalogu public_html na serwerze znajdują się pliki WP, wszystko jest ok. Na innych szablonach wszystko działa poprawnie. Wnioskuje więc, że problem stanową ustawienia, skrypt etc. odpowiedzialny w tym konkretnym szablonie za wczytywanie kategorii (są one ładowane - widać to demie, do którego link podałem w pierwszym poście). W każdym razie problem występuje tylko w przypadku wspomnianego szablonu.

Oddalając się od tematu. Domena była podpinana przed instalacją WP. Teraz jednak widzę, że nie jest ona faktycznie “podpięta”, ale utworzono na jej podstawie alias (Panel DirectAdmin -> przekierowania domen -> widnieje tutaj jako alias). Na serwerze w katalogu domains nie istnieje katalog o nazwie tej domeny. Od niedawna w moim DirectAdminie pojawiła się opcja dodana przez obsługę hostingu o nazwie “podepnij domenę pod konto” (wcześniej jej nie było), tutaj ta domena nie widnieje. To znaczy, że nie została ona faktycznie podpięta, a jest tylko aliasem ? Da się w takim przypadku poprawnie ją podpiąć bez utraty danych, starych bezpośrednich odnośników etc. (tak, by wszystko działało jak obecnie [oczywiście wyłączając nie wyświetlające się kategorie]) ?

Od końca, jak najbardziej jest to wykonalne. Podpinasz domenę, pliki WP przenosisz do jej katalogu, następnie wykonujesz aktualizację bazy wg. podanego wyżej sposobu.

Co do podstawowego problemu, to nie widząc tego można sobie jedynie gdybać.

Jeżeli problem nie występuje na innych templatkach tylko na tej jednej - to w niej szukał bym przyczyny.

Z pewnością na samym początku zrobił bym porządek z adresowaniem, czyli podpiąć domenę jak należy i zobaczyć co będzie.

Jeżeli to nic nie da, porównać templatkę z jedną z tych działających i wprowadzić stosowną korektę.

Jeśli pozwolisz mam jeszcze kilka pytań.

  1. Upewniając się, powyższe czynności związane z przeniesieniem WP nie wpłyną na utratę obecnych bezpośrednich odnośników ? Kiedyś raz sobie je wykasowałem, dlatego teraz wolę zachować zdwojoną ostrożność.

  2. Czy nie istnieje sposób na osiągnięcie odpowiedniego przekierowania bez przenoszenia plików WP, posługując się jedynie modyfikacją pliku htaccess ? Okazuje się, że WP nie miał podczas aktualizacji prawa do modyfikacji tego pliku. Może stąd problem w wyświetlaniu tych kategorii ? Ewidentnie szablon ten potrzebuje bezpośredniej ścieżki (tej do plików na serwerze), by wczytać zawartość kategorii. Odpowiednie podpięcie drugiej domeny i przeniesienie plików wydaje się w takim przypadku najlepszym rozwiązaniem, problem w tym, że nie wiem, czy podołam. Dlatego szukam alternatyw.

[EDIT] Patrząc na zawartość pliku htaccess, przekierowanie ustawione jest tylko w wp-adminie. To chyba nie jest najlepszy sposób.

Jeszcze raz zawartość pliku htaccess:

RewriteEngine On

        RewriteBase /

        RewriteCond %{REQUEST_FILENAME} !-f

        RewriteCond %{REQUEST_FILENAME} !-d

        RewriteRule . /index.php [L]
  1. Możesz wyjaśnić gdzie dokładnie w bazie miałbym wprowadzić te polecenia:

    update skan_posts set guid = replace(guid, ‘http://staradomena’, ‘http://nowadomena’)

    update skan_posts set post_content = replace(post_content, 'http://staradomena', 'http://nowadomena')
    
    update skan_options set option_value = replace(option_value, 'http://staradomena', 'http://nowadomena')
  1. jakie bezpośrednie odnośniki masz konkretnie na myśli? Czy chodzi Ci o linki z innych stron wskazujące na starą domenę?

Jeżeli tak, to w miejsce gdzie był wcześniej WP wrzucasz .htaccess z przekierowaniem 301 dla całego ruchu na właściwą domenę i tyle.

  1. kategorie nie maja nic do plików, są trzymane w bazie tak samo jak wpisy.

Może być tak, że w szablonie na sztywno przyjęto jakiś format linków, a w ustawieniach WP jest ustawiony inny format w zakładce Ustawienia > Bezpośrednie odnośniki

Trudno z całą pewnością coś tu jednoznacznie stwierdzić nie widząc co i jak.

Zawartość .htaccess jest prawidłowa, taki plik powinien się znajdować w katalogu głównym WP

  1. W PhpMyAdminie, dla bazy danych wordpressa w zakładce SQL
  1. Mówiąc bezpośrednie odnośniki mam na myśli linki wskazujące na alias. (Posługuje się tylko aliasem - praktycznie nigdzie nie ma linków wskazujących na podstawową, “starą” domenę).

  2. Z tego co widzę plik .htaccess znajduje się w katalogu głównym serwera (/) nie WP, zaraz go tam wkleję i zobaczę czy to coś da.

  3. Dzięki za informacje.

[EDIT]

Być może przypadkowo namierzyłem przyczynę problemu. Mianowicie na stronie ustawień bezpośrednich odnośników w wp-adminie widnieją dwa błędy. Oto one:

Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/XXX/:/tmp:/usr/local/lib/php/:/usr/sbin/:/usr/bin/:/usr/local/bin/:/usr/local/sbin/:/bin/:/sbin/) in /home/XXX/domains/PODSTAWOWA DOMENA/public_html/wp-admin/options-permalink.php on line 132


Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/XXX/:/tmp:/usr/local/lib/php/:/usr/sbin/:/usr/bin/:/usr/local/bin/:/usr/local/sbin/:/bin/:/sbin/) in /home/XXX/domains/PODSTAWOWA DOMENA/public_html/wp-admin/includes/misc.php on line 133


XXX = nazwa użytkownika na serwerze

PODSTAWOWA DOMENA = folder podstawowej domeny (tej darmowej,"starej", na której szablon działa).

Linijka 132 z pliku options-permalink.php:

if ( ( ! file_exists($home_path . '.htaccess') && is_writable($home_path) ) || is_writable($home_path . '.htaccess') )

$writable = true;

Linijki 130-133 z pliku misc.php:

130 - if ((!file_exists($htaccess_file) && is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks()) || is_writable($htaccess_file)) {

131 - if ( got_mod_rewrite() ) {

132 - $rules = explode( "\n", $wp_rewrite->mod_rewrite_rules() );

133 - return insert_with_markers( $htaccess_file, 'WordPress', $rules );

Czy to oznacza jednak jakiś problem z htaccess i bezpośrednimi odnośnikami ?

Znalazłem też opis podobnego problemu w j. angielskim:

http://wordpress.org/support/topic/open … ting-to-33