SF Pages For Custom Posts permet d’attribuer une page pour afficher ses CPT, comme nous pouvons le faire actuellement avec les articles.
L’intérêt du plugin est d’éviter d’avoir à créer un template de page afin d’y insérer une boucle spéciale pour afficher ces posts.
ATTENTION, j’ai créé un autre plugin, SF Archiver, qui fait plus ou moins la même chose (mais en mieux selon moi). Je vous conseille d’y jeter un œil car celui-ci n’est plus maintenu.
Réglages
Le plugin prévoit dans une page de réglages, pour chaque type de post public, le choix de la page (bien sûr), le nombre de posts par page, et optionnellement un template à utiliser (page.php, index.php, home.php, etc). Dans la plupart des cas, il n’y aura pas besoin de préciser le template, celui par défaut (index.php) sera choisi.
Il est également possible de mettre un type de post en page d’accueil de son site, à la place des articles normaux. Pour cela, il suffit d’aller dans Réglages > Lecture, choisir une page statique pour l’accueil (et indiquer une autre page pour les articles), puis aller dans Réglages > Pages pour C. Posts et indiquer la même page pour le type de post choisi. Dans ce cas, l’affichage « Page d’accueil » est parfois préférable.
A noter qu’un affichage « Page » par exemple, ne montrera pas de navigation en bas de page (en général, tout dépend de votre thème).
Hooks
Un hook est prévu pour ceux qui voudraient ajouter des champs supplémentaires dans les réglages.
Voici un exemple pour ajouter un champs « Ordre », permettant de choisir l’ordre croissant ou décroissant (code inclus et commenté en fin du fichier sf-pfcp-admin.inc.php) :
01020304050607080910111213
/* Hook example, adds an order text field */
if (!function_exists('sf_pfcp_new_fields')) {
function sf_pfcp_new_fields($post_type, $settings) {
// @var $post_type Object : post type object
// @var $settings Array : saved settings for this post type ?>
<p><label for="sf_pfcp_options[<?php echo $post_type->name; ?>][order]">
<?php _e("Order: "); ?>
<input name="sf_pfcp_options[<?php echo $post_type->name; ?>][order]" type="text" id="sf_pfcp_options[<?php echo $post_type->name; ?>][order]" value="<?php echo (isset($settings['order']) ? $settings['order'] : 'desc'); ?>" class="small-text" />
<?php _e("desc or asc (default is desc)"); ?>
</label></p>
<?php }
add_action('add_fields_to_pfcp', 'sf_pfcp_new_fields', 10, 2);
}
Ce code est à ajouter dans le fichier functions.php de votre thème.