Nie zrozumiałem z czym jest problem. Masz już działającą stronę na nowym szablonie? Utknąłeś na przenosinach czy na czym?
próbowałem przeinstalować wordpressa bo myślałem, że to coś da. JEndak nic.
Tutaj jest adres strony http://seoninja.home.pl/widelcem-pisane/ i zobacz co się pojawia po przejściu na drugą stronę przepisów (dodam, że postów jest kilka, co jest powodem dla którego nie można przeskoczyć na drugą i kolejną stronę przepisów…)
A ustaw aby się wyświetlały tylko 4 wpisy na stronie głównej … wtedy paginacja działa?
nic nie dało. Może źle wytłumaczyłem. Chodzi o to, że ilość stron do oglądania (starsze przepisy) jest zależna od tego ile jest postów a nie przepisów ;/. Czyli jak mam raptem kilka postów, które mieszczą się spokojnie na jednej stronie to bez względu na to ile mam przepisów (dajmy na to ~50) to i tak wyświetli się tylko jedna strona, bo na drugiej wyświetli mi się:
Not Found
The page you are looking is not here.
A bez sensu jest dodawać jednocześnie i przepis i wpis, bo nie po to została stworzona ta skórka… Może trzeba jakieś inne sformułowanie w kodzie użyć, żeby brał z przepisów paginację a nie z postów.
Jeśli teraz dobrze to rozumiem, to po prostu daje złą ilość stron, więc jak zmienisz że ma wyświetlać 4 wpisy zamiast 8 wpisów na stronie głównej, to ilość stron w paginacji powinna się podwoić, ale strona 1 i 2 powinny działać, kolejne już nie – czy tak faktycznie jest?
Pokaż też kod pliku index.php/home.php
Tak, wtedy tak jest. I po prostu nie wiem, gdzie tu jest zależność skoro to dwa rodzaje wpisów, więc one powinny być niezależne od siebie.
index.php
<?php get_header(); ?>
<div id=”casing”>
<?php include (TEMPLATEPATH . '/lib/nivoslider.php’); ?>
<?php
if(get_option(’zyl_home’) == „Recipes”) { ?>
<?php include (TEMPLATEPATH . '/lib/recipehome.php’); ?>
<?php } else { ?>
<?php include (TEMPLATEPATH . '/lib/homeblog.php’); ?>
<?php } ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Tutaj to chyba nic nie ma… ale wkleję jeszcze zawartość tych dwóch plików, które tutaj wywołuje.
homeblog.php
<div id=”content”>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class=”post clearfix” id=”post-<?php the_ID(); ?>”>
<?php
if ( has_post_thumbnail() ) { ?>
„><img class=”postimg” src=”<?php bloginfo(’stylesheet_directory’); ?>/timthumb.php?src=<?php get_image_url(); ?>&h=200&w=200&zc=1″ alt=””/>
<?php } else { ?>
„><img class=”postimg” src=”<?php bloginfo(’template_directory’); ?>/images/dummy.jpg” alt=”” />
<?php } ?>
<div class=”cover”>
<div class=”title”>
<h2>” rel=”bookmark” title=”Permanent Link to <?php the_title(); ?>”><?php the_title(); ?></h2>
</div>
<div class=”postmeta”>
<span class=”author”>Dodał <?php the_author(); ?> </span> <span class=”clock”> <?php the_time(’M – j – Y’); ?></span> <span class=”comm”><?php comments_popup_link(’0 komentarzy’, '1 komentarz’, '% komentarzy’); ?></span>
</div>
<div class=”entry”>
<?php wpe_excerpt(’wpe_excerptlength_index’, ”); ?>
<div class=”clear”></div>
</div>
</div>
</div>
<?php endwhile; ?>
<div class=”clear”></div>
<?php getpagenavi(); ?>
<?php else : ?>
<h1 class=”title”>Not Found</h1>
<p>Sorry, but you are looking for something that isn’t here.</p>
<?php endif; ?>
</div>
recipehome.php
<div id=”content”>
<?php
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
$wp_query->query(’post_type=recipes’.’&paged=’.$paged);
?>
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?>
<div class=”post clearfix” id=”post-<?php the_ID(); ?>”>
<?php
if ( has_post_thumbnail() ) { ?>
„><img class=”postimg” src=”<?php bloginfo(’stylesheet_directory’); ?>/timthumb.php?src=<?php get_image_url(); ?>&h=200&w=200&zc=1″ alt=””/>
<?php } else { ?>
„><img class=”postimg” src=”<?php bloginfo(’template_directory’); ?>/images/dummy.jpg” alt=”” />
<?php } ?>
<div class=”cover”>
<div class=”title”>
<h2>” rel=”bookmark” title=”Czytaj <?php the_title(); ?>”><?php the_title(); ?></h2>
</div>
<div class=”recipemeta”>
<span class=”cooktime”> Czas: <?php $cooktime=get_post_meta($post->ID, 'wtf_cooktime’, true); echo $cooktime; ?> minut </span> <span class=”serve”> Dla: <?php $serving=get_post_meta($post->ID, 'wtf_serving’, true); echo $serving; ?> osób</span>
</div>
<div class=”entry”>
<?php wpe_excerpt(’wpe_excerptlength_recipe’, ”); ?>
<div class=”clear”></div>
</div>
</div>
</div>
<?php endwhile; ?>
<div class=”clear”></div>
<?php getpagenavi(); ?>
<?php $wp_query = null; $wp_query = $temp;?>
</div>
Hmm, ciekawe … zacznijmy od tego że do pliku recipehome.php, w drugiej linijce dodasz ten kod:
<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; ?>
I do tego znajdź mi jeszcze w pliku functions.php, lub innych do niego includowanych, funkcję getpagenavi()
Ok, kod wstawiony. Czekam na dalsze instrukcje ^^. A poniżej kod, o który prosiłeś:
functiom.php
<div id=”navigation”>
<?php if(function_exists(’wp_pagenavi’)) : ?>
<?php wp_pagenavi() ?>
<?php else : ?>
<div class=”alignleft”><?php next_posts_link(__(’« Older Entries’,’arclite’)) ?></div>
<div class=”alignright”><?php previous_posts_link(__(’Newer Entries »’,’arclite’)) ?></div>
<div class=”clear”></div>
<?php endif; ?>
</div>
o to chodzi, tak?
Tak, o to chodzi, jednak nic ciekawego tam nie ma …
To powinno działać. Ściągnąłem specjalnie szablon, odpaliłem na localhoście, dodałem sobie 6 wpisów, 3 przepisy, i ustawiłem aby wyświetlało 2 wpisy na stronę – domyślna paginacja działa ok. Włączyłem pagenavi, i nadal jest ok, jak na stronie głównej wyświetlają się wpisy, to są 3 strony, jak wyświetlają się przepisy, to są 2 strony – więc to nie jest wina szablonu, i szczerze to nie mam pojęcia co innego mogło by tutaj coś psuć, możesz spróbować od wyłączenia wszystkich pluginów poza pagenavi.
oczywiście że będzie ok :). a spróbuj w takim razie na odwrót, żeby liczba wpisów była mniejsza od przepisów, bo po tej stronie jest błąd (wg mnie). Daj 3 wpisy i 6 przepisów i ustaw wyświetlanie 3 wpisów na stronę. Czyli wg mojego problemu to 2 strona z przepisami już nie powinna wejść.
Faktycznie, jeśli wpisów jest mniej niż przepisów, wtedy WP na każdej kolejnej stronie wywala 404, mimo że zarówno pagenavi wie że tam jest więcej stron do wyświetlenia, to i nawet domyślna paginacja WP wyświetla że są 'older posts’ …
Trochę się pobawiłem, i drobne obejście tego …
1. Utwórz sobie w szablonie nowy plik o nazwie home-page-template.php, wklej tam ten kod:
<?php
/*
Template Name:Homepage
*/
?>
<?php get_header(); ?>
<div id="casing">
<?php include (TEMPLATEPATH . '/lib/nivoslider.php'); ?>
<?php
if(get_option('zyl_home') == "Recipes") { ?>
<?php include (TEMPLATEPATH . '/lib/recipehome.php'); ?>
<?php } else { ?>
<?php include (TEMPLATEPATH . '/lib/homeblog.php'); ?>
<?php } ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
2. Utwórz nową stronę, nazwij ja jak chcesz, np. Strona Główna, i ustaw jej własny szablon jako Homepage
3. W ustawieniach > pisanie > ustaw aby strona główna nie wyświetlała wpisów, tylko tą nowo dodaną stronę.
4. W pliku lib/recipehome.php, ten poprzedni kod co Ci dałem popraw na:
<?php $paged = (get_query_var('page')) ? get_query_var('page') : 1; ?>
a co to da? zrobiłem tak i co? Wyświetla mi się tylko przykładowa strona, którą utworzyłem, a mają się wyświetlać przepisy. Coś gdzieś źle zrobiłem? Faktycznie, paginacja już działa normlanie i za to dziękuję, lecz zależy mi by na stronie głównej wyświetlały się przepisy, bo zamierzamy je często dodawać. Chyba, że w tym szablonie Strony głównej dać jakiś odnośnik, który by wyświetlał przepisy. Da się tak?
To naprawia problem. Jeśli chcesz aby się wyświetlały przepisy, to wystarczy w opcjach szablonu ustawić aby wyświetlało przepisy a nie wpisy na stronie głównej – jeżeli wszystko zrobiłeś co pisałem, to powinno działać.
Racja… źle zrozumiałem Twój wpis i mi nie wyszło. Teraz przeczytałem jeszcze raz i już śmiga jak należy. Wielkie dzięki :)). Uratowałeś mój czas, jaki włożyłem w przerzucanie przepisów ;).
ps. Niedługo strona będzie dostępna pod domeną http://widelcem-pisane.info, więc zapraszam ;)).