Cum să afișezi categorii din taxonomie personalizată folosind shortcode-uri
Tocmai am rezolvat o întrebare aici: Cum să afișezi postări dintr-o singură categorie dintr-o taxonomie personalizată
Acum mă întreb cum să iau acest cod:
<?php
$args = array(
'posts_per_page' => 1,
'post_type' => 'inventory',
'tax_query' => array(
array(
'taxonomy' => 'inventory-category',
'field' => 'slug',
'terms' => array(
'bulk-racks'
)
)
)
);
query_posts( $args ); while ( have_posts() ): the_post();
// faci ceva aici
?>
<?php endwhile; ?>
și să-l apelez folosind shortcode-uri, de exemplu pentru a afișa categoria bulk-racks folosind ceva de genul [inventory-category="bulk-racks"]
Știu cum să creez un shortcode simplu, dar nu știu cum să scriu funcția care să returneze postările pe baza numelui categoriei introdus în shortcode.
Din nou, orice ajutor ar fi foarte apreciat.

Aruncați o privire la shortcode-ul pentru postări pe categorii pentru a vă face o idee, iar aici este plugin-ul cu modificări minore pentru a apela tipul de postare și taxonomia dumneavoastră:
// Shortcode pentru categoria de taxonomie
function cat_func($atts) {
extract(shortcode_atts(array(
'class_name' => 'cat-post',
'totalposts' => '-1',
'category' => '',
'thumbnail' => 'false',
'excerpt' => 'true',
'orderby' => 'post_date'
), $atts));
$output = '<div class="'.$class_name.'">';
global $post;
$args = array(
'posts_per_page' => $totalposts,
'orderby' => $orderby,
'post_type' => 'inventory',
'tax_query' => array(
array(
'taxonomy' => 'inventory-category',
'field' => 'slug',
'terms' => array( $category)
)
));
$myposts = NEW WP_Query($args);
while($myposts->have_posts()) {
$myposts->the_post();
$output .= '<div class="cat-post-list">';
if($thumbnail == 'true') {
$output .= '<div class="cat-post-images">'.get_the_post_thumbnail($post->ID, 'thumbnail').'</div>';
}
$output .= '<div class="cat-content"><span class="cat-post-title"><a href="'.get_permalink().'">'.get_the_title().'</a></span>';
if ($excerpt == 'true') {
$output .= '<span class="cat-post-excerpt">'.get_the_excerpt().'</span>';
}
$output .= '</div>
<div class="cat-clear"></div>
</div>';
};
$output .= '</div>';
wp_reset_query();
return $output;
}
add_shortcode('inventory-category', 'cat_func');
utilizare:
pur și simplu introduceți acest shortcode în postările sau paginile dumneavoastră
[inventory-category totalposts="3" category="bulk-racks" thumbnail="true" excerpt="true" ]
- totalposts - numărul total de postări de afișat. implicit este -1
- category - slug-ul categoriei. folosiți virgula , pentru mai multe slug-uri
- thumbnail - setați true dacă doriți să afișați imaginea în miniatură. implicit este false
- excerpt - setați true dacă doriți să afișați rezumatul. implicit este true
- orderby - postările vor fi ordonate după. implicit post_date. consultați http://codex.wordpress.org/Template_Tags/get_posts pentru detalii

Am întâlnit o eroare fatală: Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 17301490 bytes) in \wp-content\themes\ECSE\functions\inventory-shortcode.php on line 30. Ai vreo idee care ar putea fi problema? Apropo, aceasta este linia 30 "$output .= '<div class="cat-post-list">';"

Crezi că asta ar putea fi cauzat de hosting-ul lent de la Go Daddy pe care clientul meu îl folosește?
