Come chiamare le categorie di tassonomia personalizzata con shortcode
Ho appena risolto una domanda qui: Come visualizzare post da una singola categoria all'interno di una tassonomia personalizzata
Ora mi chiedo come prendere questo codice:
<?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();
// fai qualcosa qui
?>
<?php endwhile; ?>
e chiamarlo usando shortcode, ad esempio per visualizzare la categoria bulk-racks usando questo o qualcosa di simile [inventory-category="bulk-racks"]
So come creare uno shortcode base ma non so come scrivere la funzione che restituirebbe i post in base all'input del nome della categoria nello shortcode.
Ancora una volta, qualsiasi aiuto sarebbe molto apprezzato.

Dai un'occhiata allo shortcode per i post di categoria per avere un'idea ed ecco il plugin con piccole modifiche per chiamare il tuo post type e tassonomia:
// Shortcode per la categoria tassonomia
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');
utilizzo:
basta inserire questo shortcode nei tuoi post o pagine
[inventory-category totalposts="3" category="bulk-racks" thumbnail="true" excerpt="true" ]
- totalposts - numero totale di post da visualizzare. Il valore predefinito è -1
- category - slug della categoria. Usa la virgola , per più slug
- thumbnail - imposta true se vuoi visualizzare la miniatura. Il valore predefinito è false
- excerpt - imposta true se vuoi visualizzare l'estratto. Il valore predefinito è true
- orderby - i tuoi post verranno ordinati per. Il valore predefinito è post_date. Controlla http://codex.wordpress.org/Template_Tags/get_posts per i dettagli

Sto ricevendo un errore fatale: Errore fatale: Dimensione della memoria consentita di 33554432 byte esaurita (tentativo di allocare 17301490 byte) in \wp-content\themes\ECSE\functions\inventory-shortcode.php alla riga 30. Hai idea di quale possa essere il problema? A proposito, questa è la riga 30 "$output .= '<div class="cat-post-list">';"

Pensi che potrebbe essere causato dal lento hosting Go Daddy che il mio cliente sta utilizzando?

Penso che abbia a che fare con le impostazioni della memoria del server
