jaký je nejlepší způsob zobrazení příspěvků podle pořadí a-&gt; z?
<p>právě jsem spustil web, který má v této sekci sekci zdroje, seznam škol, dokumentů atd. nyní klient požádá o přidání „abecedního třídiče“, který umožní uživatelům vidět v každé konkrétní kategorii příspěvek/zdroje podle jejich první dopis.</p><p>to by nemělo být těžké (teoreticky), problémy jsou v tom, že se jedná o vlastní typy s vnořenými kategoriemi a já již manipulovám s požadavkem (na filtru <code>request</code>), abych získal to, co chci a ne 404.</p><p>struktura je <code>domain.com/resources/parent-category/child-category/post-name</code> a já bych chtěl mít docela permalink vypadat tak <code>domain.com/resources/parent-category/child-category/a-z</code> a ne používat <code>index=a-z</code>.</p><p>to by mělo také fungovat (zobrazit správné příspěvky v pořadí-z), když uživatel smaže část url, tj. <code>domain.com/resources/parent-category/a-z</code> nebo <code>domain.com/resources/a-z</code>.</p><p>jaký by byl nejlepší přístup, protože bychom se nemohli vrátit a přidat „kategorii na písmeno“, taxonomii, vlastní pole atd.? existuje způsob, jak se možná zapojit do syrového sql a upravit ho jako zde <a href="http://wordpress.org/support/topic/first-letter-posts">http://wordpress.org/support/topic/first-letter-posts</a> ?</p><p>dík!</p>
<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>
<blockquote> <p>existuje lepší způsob, jak toho dosáhnout pomocí vlastních taxonomií?</p> </blockquote><p>máte pravdu na těch penězích. namísto pokusu o vytvoření vlastního příspěvku do dítěte standardního příspěvku (protože nemůžete) doporučuji použít vlastní taxonomii k objednání věcí.</p><p>v zásadě můžete vytvořit vlastní hierarchickou taxonomii a použít ji k "kategorizaci" standardních příspěvků i vlastních příspěvků. vaše standardní příspěvky byste označili jako nadřazené v taxonomii a své vlastní příspěvky jako dítě.</p><h3>druhá možnost</h3><p>další možností by bylo použití vlastního pole pro rodičovské dědictví. to by mohlo být o něco rychlejší, než aby kód a intuitivnější k použití (plus to vám dá nějaké přidané ovládání).</p><p>přidejte vlastní pole meta do vlastního typu příspěvku nazvaného "rodiče". to pak může být seznam id příspěvků, které by měl být podřízený příspěvek vnořen. pokud potřebujete seznam vyvolat, můžete provést rychlý dotaz na <code>select</code> všechny vaše vlastní příspěvky, které mají rodičovský identifikátor v seznamu svých rodičů.</p> <p>doporučuji pro to použít vlastní taxonomii <em> ne </em> vlastní pole. archivy můžete třídit a zobrazovat na základě taxonomie mnohem snadněji než u vlastních polí.</p><p>pokud však chcete seznam na základě vlastního pole, budete muset upravit argumenty odeslané na stránku <code>query\_posts()</code> na stránce archivu a předat je v souboru <code>meta\_key</code> a <code>meta\_value</code>, které hledáte.</p><p>přidání proměnné dotazu:</p><pre><code>add\_action('init', 'add\_custom\_meta\_url'); function add\_custom\_meta\_url() { global $wp,$wp\_rewrite; $wp-&gt;add\_query\_var('location'); $wp\_rewrite-&gt;add\_rule('location/([^/]+)','index.php?location=$matches[1]','top'); $wp\_rewrite-&gt;flush\_rules(false); // this should really be done in a plugin activation } </code></pre><p>pak se vaše permalinks pro archiv stane něčím v souladu s <code>http://mycoollocationsite.com/location/england</code> <code>http://mycoollocationsite.com/location/ireland</code> <code>http://mycoollocationsite.com/location/usa</code> ... atd ...</p><p>dále budete muset přidat libovolnou hodnotu, která byla do vašeho umístění předána aktuálnímu dotazu:</p><pre><code>add\_action('parse\_query', 'apply\_custom\_meta\_to\_query'); function apply\_custom\_meta\_to\_query(&amp;$query) { if (isset($query-&gt;query['location'])) { $query-&gt;query\_vars['meta\_key'] = 'location'; $query-&gt;query\_vars['meta\_value'] = $query-&gt;query['location']; unset($query-&gt;query\_vars['location']); // you don't need this } } </code></pre><p>předpokládám, že ukládáte vlastní data do pole nazvaného <code>location</code> ... takže změňte, pokud se mýlím.</p><p>to vám však umožní filtrovat archivy na základě konkrétního umístění. pokud chcete tímto způsobem povolit archivy založené na datech, které budou vyžadovat některá další pravidla v mém prvním bloku kódu (právě teď by se zobrazil seznam <em> všech </em> příspěvky s <code>location</code> meta\_key).</p><p>místo toho doporučuji použít vlastní taxonomii. je to čistší, rozšiřitelnější a vyžaduje méně vlastního kódování. to je také přesně ta situace, pro kterou byly vytvořeny vlastní taxonomie ... tak prosím, neobjevujte kolo ...</p> <p>po nějaké zkoušce a omylu to je to, co je potřeba, aby to fungovalo ...</p><pre><code> $cat\_args = array('orderby' =&gt; 'count'); $cat\_args['title\_li'] = ''; $cat\_args['exclude\_tree'] = 1; $cat\_args['exclude'] = 1; $cat\_args['depth'] = 1; wp\_list\_categories(apply\_filters('widget\_categories\_args', $cat\_args)); </code></pre> <p>můžete použít funkci wordpress get\_children. i když si nemyslím, že je to rozdíl, výkon-moudrý.</p><pre><code>&lt;?php while (have\_posts()) : the\_post(); ?&gt; &lt;?php $attachment = array\_values( get\_children( array( 'post\_parent' =&gt; $post-&gt;id, 'post\_type' =&gt; 'attachment', 'post\_mime\_type' =&gt; 'image', 'order' =&gt; 'asc', 'numberposts' =&gt; 1 ) ) ); ?&gt; &lt;div class="searchitem" style="clear:both;"&gt; &lt;h3 id="post-&lt;?php the\_id(); ?&gt;"&gt; &lt;?php if( $attachment ) echo '&lt;img src="' . wp\_get\_attachment\_url($attachment[0]-&gt;id) . '" class="post-attachment" /&gt;'; ?&gt; &lt;a href="&lt;?php the\_permalink() ?&gt;" rel="bookmark" title="permanent link to &lt;?php the\_title\_attribute(); ?&gt;"&gt;&lt;?php the\_title(); ?&gt;&lt;/a&gt;&lt;/h3&gt; &lt;small&gt;&lt;?php the\_time('l, f js, y') ?&gt;&lt;/small&gt; &lt;div class="excerpt"&gt;&lt;?php echo $post-&gt;post\_excerpt; ?&gt;&lt;/div&gt; &lt;div class="postmetadata"&gt;posted in &lt;?php the\_category(', ') ?&gt; | &lt;?php comments\_popup\_link('no comments &amp;#187;', '1 comment &amp;#187;', '% comments &amp;#187;'); ?&gt;&lt;/div&gt; &lt;/div&gt; &lt;?php endwhile; ?&gt; </code></pre> <p>nejlepší je vytvořit šablonu stránky s následujícím kódem. také se musíte rozhodnout, zda budete používat značku nebo kategorii. níže uvedený kód předpokládá, že používáte kategorii.</p><pre><code>&lt;div class="news"&gt; &lt;?php //the query wp\_query('showposts=5&amp;category\_name=news'); //the loop if ( have\_posts() ) : while ( have\_posts() ) : the\_post(); ?&gt; &lt;h2&gt;&lt;a href="&lt;?php the\_permalink() ?&gt;" rel="bookmark" title="permanent link to &lt;?php the\_title\_attribute(); ?&gt;"&gt;&lt;?php the\_title(); ?&gt;&lt;/a&gt;&lt;/h2&gt; &lt;div class="post\_content"&gt; &lt;?php the\_excerpt(); ?&gt; &lt;/div&gt; &lt;? endwhile; endif; //reset query wp\_reset\_query(); ?&gt; &lt;/div&gt; &lt;div class="events"&gt; &lt;?php //the query wp\_query('showposts=5&amp;category\_name=events'); //the loop if ( have\_posts() ) : while ( have\_posts() ) : the\_post(); ?&gt; &lt;h2&gt;&lt;a href="&lt;?php the\_permalink() ?&gt;" rel="bookmark" title="permanent link to &lt;?php the\_title\_attribute(); ?&gt;"&gt;&lt;?php the\_title(); ?&gt;&lt;/a&gt;&lt;/h2&gt; &lt;div class="post\_content"&gt; &lt;?php the\_excerpt(); ?&gt; &lt;/div&gt; &lt;? endwhile; endif; //reset query wp\_reset\_query(); ?&gt; &lt;/div&gt; </code></pre> No, já nevím, jestli to je nejvíce stručné způsob, jak to udělat, ale to funguje:



```
IsEnabled="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}, Path=DataContext.SelectButtonsEnabled}"

``` <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> a neni to lepsi udelat jednoduseji? napr [https://365tipu.wordpress.com/2015/08/28/kde-zmenim-jme...](https://365tipu.wordpress.com/2015/08/28/kde-zmenim-jmeno-pocitace-s-windows-10-kde-ho-pridam-do-domeny-ci-pracovni-skupiny/) Jak stránka vypadá, je jedno. Ta stránka má nějaký zdrojový kód, tak ho prostuduj. Nebo požádej někoho, kdo aspoň ví, o čem je řeč. Tvůj kód nehodlám číst, takže jen obecně. Na začátku před tím než budeš data řadit, tak si udělej jejich kopii. Pak si data seřaď a máš co jsi chtěl. V té kopii máš původní neseřazená data v původním pořadí.