{"id":32725,"date":"2013-09-08T12:35:25","date_gmt":"2013-09-08T11:35:25","guid":{"rendered":"https:\/\/pl.wordpress.org\/support\/topic\/filtrowanie-wp_query-za-pomoca-formularza-i-stronicowanie\/"},"modified":"2016-08-05T22:01:53","modified_gmt":"2016-08-05T22:01:53","slug":"filtrowanie-wp_query-za-pomoca-formularza-i-stronicowanie","status":"closed","type":"topic","link":"https:\/\/pl.wordpress.org\/support\/topic\/filtrowanie-wp_query-za-pomoca-formularza-i-stronicowanie\/","title":{"rendered":"Filtrowanie WP_Query za pomoc\u0105 formularza i stronicowanie"},"content":{"rendered":"<p>Witam,<\/p>\n<p>Musz\u0119 zrobi\u0107 filtrowanie swojego WP_Query wg term\u00f3w taksonomii i niestety mam problem ze stronicowaniem wynik\u00f3w. <\/p>\n<p>Do stronicowania u\u017cywam wtyczki wp simple pagination. <\/p>\n<p>Problem polega na tym, \u017ce dobrze pobiera wybrane taksonomie, i tworzy mi list\u0119 post\u00f3w tylko z wybranych kilku kategorii, ale linki stronicowania prowadz\u0105 do z\u0142ej strony, i nie potrafi\u0119 w nich przepisa\u0107 warto\u015bci wybranych kategorii, bo niestety link do nast\u0119pnej strony albo prowadzi do 404, albo do archiwum post\u00f3w z wszystkich kategorii. <\/p>\n<p>Post type = partnerzy, taksonomia = branza<\/p>\n<p>Da si\u0119 obej\u015b\u0107 bez javascriptu zeby stronicowanie dzialalo tak jak powinno czyli zeby w wynikach pokazywalo kolejne strony wybranych kilku kategorii. <\/p>\n<p>Taki mam kod:<\/p>\n<pre><code>&lt;?php \n\n\t$taxes = array();\n\tif (isset($_POST[&#039;terms&#039;])) {\n\t\t$taxes = $_POST[&#039;terms&#039;];\n\t}\n\n\t?&gt;\n\n\t&lt;div class=&quot;filter-container&quot;&gt;\n\n\t\t&lt;form action=&quot;&quot; method=&quot;post&quot; class=&quot;filters-form&quot;&gt;\n\n\t\t&lt;?php \t$terms = get_terms(&#039;branza&#039;,array(&#039;hide_empty&#039;=&gt;true));\t?&gt;\n\n\t\t&lt;?php foreach ($terms as $term): \n\n\t\t\t$name = $term-&gt;name;\n\t\t\t$slug = $term-&gt;slug;\n\t\t\t$id = $term-&gt;term_id;\n\n\t\t?&gt;\n\n\t\t\t&lt;span class=&quot;thefield&quot;&gt;\n\t\t\t\t&lt;input type=&quot;checkbox&quot; name=&quot;terms[]&quot; id=&quot;term-&lt;?php echo $id; ?&gt;&quot; value=&quot;&lt;?php echo $slug; ?&gt;&quot; &lt;?php if (in_array($slug,$taxes)) {echo &#039;checked=&quot;checked&quot;&#039;;} ?&gt;\n\t\t\t\t&gt;\n\t\t\t\t&lt;label for=&quot;term-&lt;?php echo $id; ?&gt;&quot;&gt;\n\t\t\t\t\t&lt;?php echo $name ?&gt;\n\t\t\t\t&lt;\/label&gt;\n\t\t\t&lt;\/span&gt;\n\n\t\t&lt;?php endforeach ?&gt;\n\n\t\t&lt;div class=&quot;filter-buttons&quot;&gt;\n\t\t\t&lt;input class=&quot;ico-reset filter-reset&quot; type=&quot;reset&quot; value=&quot;Wyczy\u015b\u0107&quot; \/&gt;\n\t\t\t&lt;input class=&quot;ico-submit filter-submit&quot; type=&quot;submit&quot; value=&quot;Filtruj&quot; \/&gt;\n\t\t&lt;\/div&gt;\n\t\t&lt;\/form&gt;\n\n\t&lt;\/div&gt;\n\n\t&lt;div class=&quot;query-results&quot;&gt;\n\n\t\t&lt;?php\n\t\techo $paged;\n\t\tif (sizeof($taxes) == 0) {\n\t\t\t$taxes = false;\n\t\t}\n\n\t\t$args = array();\n\n\t\tif ($taxes) {\n\t\t\t$args = array(\n\t\t\t\t&#039;posts_per_page&#039; =&gt; 2,\n\t\t\t\t&#039;post_type&#039; =&gt; &#039;partnerzy&#039;,\n\t\t\t\t&#039;tax_query&#039; =&gt; array(\n\t\t\t\t\t\t&#039;relation&#039; =&gt; &#039;OR&#039;,\n\t\t\t\t\t\tarray(\n\t\t\t\t\t\t\t&#039;taxonomy&#039; =&gt; &#039;branza&#039;,\n\t\t\t\t\t\t\t&#039;field&#039; =&gt; &#039;slug&#039;,\n\t\t\t\t\t\t\t&#039;terms&#039; =&gt; $taxes\n\t\t\t\t\t\t\t),\n\t\t\t\t\t),\n\n\t\t\t\t&#039;paged&#039;=&gt; $paged\n\t\t\t);\n\t\t} else {\n\t\t\t$args = array(\n\t\t\t\t&#039;posts_per_page&#039; =&gt; 2,\n\t\t\t\t&#039;post_type&#039; =&gt; &#039;partnerzy&#039;,\n\t\t\t\t&#039;paged&#039;=&gt; $paged\n\t\t\t);\n\t\t} \n\n\t\t$temp = $wp_query;\n\n\t\t$wp_query = new WP_Query($args);\n\n\t\t?&gt;\n\n\t\t&lt;?php if ( $wp_query-&gt;have_posts() ) : while (  $wp_query-&gt;have_posts() ) :  $wp_query-&gt;the_post(); ?&gt;\n\n\t\t\t\t&lt;?php $www = get_field(&#039;www&#039;); ?&gt;\n\n\t\t\t&lt;article id=&quot;post-&lt;?php the_ID();?&gt;&quot; &lt;?php post_class(&#039;partnerzy-item&#039;); ?&gt; &gt;\n\t\t\t\t\t&lt;?php if (has_post_thumbnail()): ?&gt;\n\t\t\t\t\t\t&lt;div class=&quot;archive-thumb&quot;&gt;\n\t\t\t\t\t\t\t&lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot;&gt;&lt;?php the_post_thumbnail(&#039;partner-thumb&#039;); ?&gt;&lt;\/a&gt;\n\t\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;?php endif; ?&gt;\n\n\t\t\t\t\t&lt;h2 class=&quot;archive-title&quot;&gt;&lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot;&gt;&lt;?php the_title(); ?&gt;&lt;\/a&gt;&lt;\/h2&gt;\n\n\t\t\t\t\t&lt;div class=&quot;archive-content&quot;&gt;\n\t\t\t\t\t\t&lt;?php the_excerpt(); ?&gt;\n\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;div class=&quot;archive-more clearfix&quot;&gt;\n\t\t\t\t\t\t&lt;?php if (!empty($www)): ?&gt;\n\t\t\t\t\t\t\t&lt;a href=&quot;&lt;?php echo $www; ?&gt;&quot; class=&quot;ico-link&quot;&gt;&lt;?php _e(&#039;strona www&#039;,&#039;medivite&#039;); ?&gt;&lt;\/a&gt;\n\t\t\t\t\t\t&lt;?php endif; ?&gt;\n\t\t\t\t\t\t&lt;a href=&quot;&lt;?php the_permalink(); ?&gt;&quot; class=&quot;read-more&quot;&gt;&lt;?php _e(&#039;Czytaj dalej&#039;,&#039;medivite&#039;); ?&gt;&lt;\/a&gt;\n\t\t\t\t\t&lt;\/div&gt;\n\n\t\t\t&lt;\/article&gt;\n\n\t\t&lt;?php endwhile; ?&gt;\n\t\t&lt;div class=&quot;clearfix&quot;&gt;&lt;\/div&gt;\n\t\t\t&lt;?php if (function_exists(&#039;wp_simple_pagination&#039;)): ?&gt;\n\t\t\t\t&lt;?php wp_simple_pagination(); ?&gt;\n\t\t\t&lt;?php endif ?&gt;\n\t\t&lt;?php else: ?&gt;\n\t\t\t&lt;h2&gt;&lt;?php _e(&#039;Brak partner\u00f3w&#039;,&#039;medivite&#039;); ?&gt;&lt;\/h2&gt;\n\t\t\t&lt;p&gt;&lt;?php _e(&#039;Niestety w tej bran\u017cy jeszcze nie ma partner\u00f3w. Chcesz do\u0142\u0105czy\u0107?&#039;,&#039;medivite&#039;); ?&gt;&lt;\/p&gt;\n\t\t&lt;?php endif; ?&gt;\n\n\t\t\t&lt;?php wp_reset_postdata(); ?&gt;\n\n\t\t&lt;?php $wp_query = null; $wp_query = $temp; unset($temp);?&gt; \t\n\n\t&lt;\/div&gt;<\/code><\/pre>\n<p>Wcinam si\u0119 w zmienna $wp_query po to \u017ceby w og\u00f3le wtyczka stronicowania dzia\u0142a\u0142a.<\/p>\n<p>Formularz dzia\u0142a metod\u0105 POST. Wola\u0142bym GET, ale niestety nie potrafi\u0119 zrobi\u0107 \u0142adnego linku, i tworzy si\u0119 kod typu &#8230;?terms=3&amp;terms=6&amp;terms=8, a wolalbym wtedy ?terms=3,6,8 <\/p>\n<p>Jak to zrobic? Wtedy i stronicowanie \u0142atwo by bylo dopisac do linkow stronicowania poprzez JS.<\/p>\n<p>Calosc wyglada tak http:\/\/scr.hu\/5oi\/mlmm8 \ud83d\ude42<\/p>\n","protected":false},"template":"","class_list":["post-32725","topic","type-topic","status-closed","hentry","topic-tag-query-filtrowanie-wyniki-wp_query-taksonomie-formularz"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pl.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/32725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pl.wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/pl.wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":0,"href":"https:\/\/pl.wordpress.org\/support\/wp-json\/wp\/v2\/topic\/32725\/revisions"}],"wp:attachment":[{"href":"https:\/\/pl.wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=32725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}