Ist es möglich, einen Shortcode zu erstellen, der einen Post basierend auf Taxonomien abfragt?

Ich arbeite an einer Website, die ein paar hundert Produkte auflisten wird und wir wollten schnell und einfach bestimmte Produkte auf einer Seite zeigen, die auf Taxonomien basiert. Ich habe etwas recherchiert und gedacht, dass ich auf dem richtigen Weg bin.

Zuerst fand ich diesen Artikel auf digwp.com, von dem ich dachte, er würde großartig funktionieren. Ich kann es nicht bekommen, um die Beiträge basierend auf Taxonomie zu ziehen – nur post_type. Der Post-Typ ist “Used Items” und ich habe eine Taxonomie namens Color erstellt, wo einer der Slugs Rot war.

[loop the_query="post_type=used-items&color=red&ord=ASC"] 

Ich fand auch dieses Plugin für eine Abfrage nach Shortcode, aber die gleiche Situation damit nicht durch Taxonomie ziehen.

Meine Frage Weiß jemand, was ich tun kann, um Posts basierend auf Post-Typ / Taxonomien (würde mehrere Abfragen verwenden) direkt von einer WordPress-Seite zu ziehen. Wir möchten Produkte schnell abfragen können, ohne die Abfrage für jede mögliche Option in eine Seitenvorlage programmieren zu müssen.

Solutions Collecting From Web of "Ist es möglich, einen Shortcode zu erstellen, der einen Post basierend auf Taxonomien abfragt?"

Hier ist ein einfacher Shortcode, der mit Taxonomien, Post-Typen und anderen Parametern, die WP_Query benötigt, umgehen kann:

 add_shortcode('posts','posts_shortcode_handler'); function posts_shortcode_handler($atts, $content){ extract(shortcode_atts(array( 'posts_per_page' => '5', ), $atts)); global $post; $temp = $post; $posts = new WP_Query($atts); $retVal = ''; if ($posts->have_posts()){ while ($posts->have_posts()){ $posts->the_post(); // these arguments will be available from inside $content $parameters = array( 'PERMALINK' => get_permalink(), 'TITLE' => get_the_title(), 'CONTENT' => get_the_content(), 'CATEGORIES' => get_the_category_list(', '), 'THUMBNAIL' => get_the_post_thumbnail() ); $finds = $replaces = array(); foreach($parameters as $find => $replace){ $finds[] = '{'.$find.'}'; $replaces[] = $replace; } $retVal .= str_replace($finds, $replaces, $content); } } wp_reset_query(); $post = $temp; return $retVal; } 

Verwendung:

 [posts post_type="page" posts_per_page=5 taxonomy_name="taxonomy_term"] 
{TITLE}
{THUMBNAIL}
{CONTENT}
[/posts]

Ersetzen Sie die Seite durch den Namen Ihres Post-Typs, taxonomy_name mit Ihrem Taxonomie-Namen und taxonomy_term durch den Taxonomie-Begriff