stránkování bylo vyřešeno pouze na první stránku
<p>moje stránkování je pouze odkaz na stejné příspěvky, které jsou na mé titulní stránce.</p><p>mám 3 příspěvky na mé titulní stránce, když jsem stisknout další to jde na/page/2, ale pouze ukazuje stejné 3 příspěvky, bez předchozího tlačítka. další tlačítko je stále tam, ale stále jde na stránku/1</p><p>zde je úplný dotaz.</p><pre><code>&lt;?php query\_posts('post\_type=post&amp;posts\_per\_page=3'); if ( have\_posts() ) : while ( have\_posts() ) : the\_post(); $category = choose\_one\_category(get\_the\_category()); switch ($category){ case "festival news": $left[] = $post; break; case "industry news": $centre[] = $post; break; case "other": $right[] = $post; break; } endwhile; ?&gt; &lt;div class="custom-pagination"&gt; &lt;div &gt;&lt;?php previous\_posts\_link('&amp;laquo; previous') ?&gt;&lt;/div&gt; &lt;div &gt;&lt;?php next\_posts\_link('next &amp;raquo;') ?&gt;&lt;/div&gt; &lt;/div&gt; &lt;?php endif; ?&gt; </code></pre>
<p>stavím-li se z toho, co řekl rarst, jsem si jistý, že řetězec dotazů si ponechá dotazy „paged“ i v případě, že je <code>wp\_query</code> odstraňuje jako irelevantní. můžete zkusit nahradit řádek příspěvků dotazu tímto způsobem:</p><pre><code>global $query\_string; parse\_str( $query\_string, $my\_query\_array ); $paged = ( isset( $my\_query\_array['paged'] ) &amp;&amp; !empty( $my\_query\_array['paged'] ) ) ? $my\_query\_array['paged'] : 1; query\_posts('post\_type=post&amp;posts\_per\_page=3&amp;paged='.$paged); </code></pre>
<p>odstraněním všech ostatních řešení je zbývající alespoň jedno: <a href="http://codex.wordpress.org/plugin\_api/action\_reference/template\_redirect"><code>template\_redirect</code></a> :</p><pre><code>function wpse121308\_redirect\_homepage() { // check for blog posts index // not site front page, // which would be is\_front\_page() if ( is\_home() ) { wp\_redirect( get\_category\_link( $id ) ); exit(); } } add\_action( 'template\_redirect', 'wpse121308\_redirect\_homepage' ); </code></pre><p>samozřejmě musíte složit příslušnou kategorii <code>$id</code>.</p><p>výhodou přesměrování na <code>template\_redirect</code> je to, že se místo jednoho přesměrování <em> po načtení šablony </em> provede pouze jedno načítání šablony.</p><h2>upravit</h2><p>podle komentáře uživatele @ milo můžete také zkusit zaháknutí do procesu ještě dříve, v souboru <code>pre\_get\_posts</code>, čímž můžete potenciálně uložit celý požadavek dotazu:</p><pre><code>add\_action( 'pre\_get\_posts', 'wpse121308\_redirect\_homepage' ); </code></pre> <p>moje doporučení by bylo použít <code>query\_posts()</code> k úpravě dotazu tak, aby <code>orderby=title</code> a <code>order=asc</code> ... toto vrátilo stejné výsledky jako váš první dotaz, ale s příspěvky <a href="http://codex.wordpress.org/function\_reference/query\_posts#orderby\_parameters">seřazenými abecedně podle názvu</a> .</p> <p>pokud nemáte více zdrojů, umístil bych je do <strong> stejného seznamu jako ikony sociálních profilů </strong> (nezaměňovat s "<em> sdílet to" na sociálních sítích</em> "odkazy).</p><p>pokud jde o nejlepší umístění tohoto seznamu, bylo diskutováno v otázce <a href="https://ux.stackexchange.com/questions/3462/social-share-buttons-best-position/3466#3466">sociální pozice tlačítek nejlepší pozice</a> (v horní části stránky se zdá být nejoblíbenější).</p><hr><p>můžete si také přečíst článek „ <a href="http://camendesign.com/blog/rss\_is\_dying">rss je ignorován a měli byste se velmi obávat</a> " o posledních změnách podpory rss ve webových prohlížečích.</p> <p>text by měl do značné míry záviset na samotném skutečném obsahu. je to citlivé na čas, jako jsou zprávy, nebo je to obsah, který bude relevantní bez ohledu na to, když se zobrazí? pokud je to citlivé na čas, má smysl používat starší/novější. pokud to není časově citlivé, předchozí/další se jeví lépe.</p><p>řekl bych však, že přidání čísel stránek by zvýšilo srozumitelnost vašeho stránkování, protože by vám poskytlo počáteční index, který je snadno patrný, a také by poskytlo více kontextu pro vaše stránkování. většina zmatku ve výše uvedených metodách vyplývá z toho, že nevíte, kde jste, nevíte, kde jste, nebo obojí. čísla stránek pomáhají tento problém zmírnit, zejména pokud jasně uvedete, které číslo stránky uživatel právě prohlíží.</p><p>pokud jde o to, co by mělo přijít první, starší/novější, záleží zcela na vašem pořadí řazení. znovu však přidávání čísel stránek do značné míry zmatek minimalizuje.</p><p>a co víc, jak pro účely použitelnosti, tak pro účely seo byste měli poskytnout více než jen starší/novější nebo další/předchozí.</p><p>zvážit:</p><p>předpokládejme, že váš blog se týká obchodních zpráv. který je nejužitečnější?</p><ol> <li><strong>novější obchodní zprávy</strong> 1 2 [3] 4 5 <strong>starší obchodní zprávy</strong></li> <li><strong>novější obchodní zprávy</strong> | <strong>starší obchodní zprávy</strong></li> <li><strong>novější</strong> 1 2 [3] 4 5 <strong>starší</strong></li> <li><strong>novější</strong> | <strong>starší</strong></li> </ol><p>nebo řekněme, že váš blog není časově citlivý. místo toho publikujete obchodní články, jako jsou osvědčené postupy týkající se marketingu, najímání, strategie atd. co je nejužitečnější?</p><ol> <li><strong>předchozí obchodní zdroje</strong> 1 2 [3] 4 5 <strong>další obchodní zdroje</strong></li> <li><strong>předchozí obchodní zdroje</strong> | <strong>další obchodní zdroje</strong></li> <li><strong>předchozí</strong> 1 2 [3] 4 5 <strong>další</strong></li> <li><strong>předchozí</strong> | <strong>další</strong></li> </ol> <p>to funguje pro mě. <a href="http://core.trac.wordpress.org/browser/branches/3.0/wp-admin/includes/meta-boxes.php#l535">při pohledu na kód</a> se rozevírací seznam zobrazí pouze v případě, že typ příspěvku je hierarchický (což je pravda ve vašem případě), a pokud existují další příspěvky <strong> stejného typu </strong> v databázi. příspěvek tedy nemůže být dítětem jiného typu příspěvku (například běžný příspěvek nebo stránka) a první nový příspěvek typu se nezobrazí v rozevírací nabídce.</p> <p>ze dvou uvedených možností bych šel na akordeonové menu.</p><p>samostatná stránka znamená dvě kliknutí a (obvykle) zpáteční cestu na server a pak se musíte vrátit zpět.</p><p>neexistuje žádná výhoda pro „předvolbu“ - pokud pro jednu stránku není mnoho možností.</p><p>jedna stránka (tj. bez „seskupené“ nabídky, pouze jediný odkaz) je v pořádku, pokud všechny běžné případy použití zahrnují více akcí na vybraného uživatele.</p><p>jinak bych použil „akordeonová“ menu nebo vyskakovací/javascriptová vyskakovací menu, <strong>a</strong> umožňovala přidávat příkazy na začátek seznamu.</p> <p>-1 je vaše odpověď! vyhledejte <code>posts\_per\_page</code> <a href="http://codex.wordpress.org/class\_reference/wp\_query#pagination\_parameters">zde</a> .</p><pre><code>$args = array( 'post\_type' =&gt; 'post', 'cat' =&gt; '22,47,67', 'orderby' =&gt; 'name', 'order' =&gt; 'asc', 'hide\_empty' =&gt; 1, 'depth' =&gt; 1, 'posts\_per\_page' =&gt; -1 ); </code></pre><p><strong> důležité upozornění </strong>: to může mít za následek velmi obrovský dotaz, který může web snížit. udělejte to pouze v případě, že jste si jisti, že s databází může pracovat. ne ve veřejných tématech nebo pluginech.</p> <p>doporučuji vytvořit ve vašem souboru function.php funkci, která se váže na akční háček <code>activate\_blog</code>. pomocí funkcí wordpress <a href="http://codex.wordpress.org/function\_reference/get\_pages">get\_pages ()</a> zjistíte, zda existují vaše výchozí stránky. pokud ne, vytvořte je pomocí <a href="http://codex.wordpress.org/function\_reference/wp\_insert\_post">wp\_insert\_post</a> .</p><pre><code>add\_action('activate\_blog','my\_default\_pages'); function my\_default\_pages(){ $default\_pages = array('about','home','my store','my address'); $existing\_pages = get\_pages(); foreach($existing\_pages as $page){ $temp[] = $page-&gt;post\_title; } $pages\_to\_create = array\_diff($default\_pages,$temp); foreach($pages\_to\_create as $new\_page\_title){ // create post object $my\_post = array(); $my\_post['post\_title'] = $new\_page\_title; $my\_post['post\_content'] = 'this is my '.$new\_page\_title.' page.'; $my\_post['post\_status'] = 'publish'; $my\_post['post\_type'] = 'page'; // insert the post into the database $result = wp\_insert\_post( $my\_post ); } } </code></pre><p>chcete-li tuto funkci otestovat na svých vlastních stránkách, zkuste nastavit háček na <code>wp\_head</code>. spustí se na každém načtení stránky a vloží stránky, které neexistují, s obsahem v $ my\_post ['post\_content']. * má háček 'aktivovat\_blog' běžet, když jsou vytvořeny blogy v kontextu více stránek? nevím.*</p><p>úplný seznam výchozích parametrů, které jsou k dispozici, naleznete na stránce s kódem pro wp\_insert\_post, na kterou jsem odkazoval.</p> <p>můžete zobrazit novou položku pod/nad aktuálně zobrazeným seznamem, ale oddělené, takže je jasné, že položka na této stránce nepatří.</p><pre><code> 1. make a to-do list today 2. new year's resolution jan 1 3. join the gym jan 2 4. answer a ui.se question jan 2 ^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^v^ 17. stop procrastinating apr 1 page [1] 2 3 4 5 </code></pre> Jistá - pokud víte, že vaše předchozí stránky (u staršího sitemap.xml nebo prostě vlezl) jsou indexovány, měli byste být v pořádku tím, že zahrnuje pouze nové vazby.