Lister les publications dans le personnalisateur de thème wordpress
Salut. Je crée un thème WordPress et je me demandais si quelqu’un connaissait un moyen de répertorier l’un de mes types de publication personnalisés dans le personnalisateur de thème. J’ai un type de message personnalisé appelé « diaporama » qui a des méta-boîtes personnalisées, etc. et est conçu uniquement pour les diaporamas. J’aimerais pouvoir lister ces messages dans une liste déroulante à l’intérieur du personnalisateur . Idéalement, se retrouver avec eux dans le tableau comme celui-ci… ‘the_id’ => ‘Slideshow post title’,
$wp_customize->add_setting(
'slideshow-homepage',
array(
'default' => 'none',
)
);
$wp_customize->add_control(
'slideshow-homepage',
array(
'type' => 'select',
'priority' => 3,
'label' => 'Slideshow',
'description' => '',
'section' => 'homepage',
'choices' => array(
'somehow' => 'somehow',
'list' => 'list',
'all' => 'all',
'custom' => 'custom',
'post' => 'post',
'types' => 'types',
'of' => 'of',
'type' => 'type',
'slideshow' => 'slideshow'
),
)
);
Un grand merci les gars et les filles. Lewis
Solution n°1 trouvée
utiliser array_reduce
$wp_customize->add_control(
'slideshow-homepage',
array(
'type' => 'select',
'priority' => 3,
'label' => 'Slideshow',
'description' => '',
'section' => 'homepage',
'choices' => array_reduce(
get_posts( 'post_type=slideshow&posts_per_page=-1' ),
function( $result, $item ) {
$result[$item->ID] = $item->post_title;
return $result;
}
),
)
);
Pour ajouter également un champ vide :
$posts = array_reduce(
get_posts( 'post_type=slideshow&posts_per_page=-1' ),
function( $result, $item ) {
$result[$item->ID] = $item->post_title;
return $result;
}
);
$none = array('' => 'None');
$choices = $none + $posts;
$wp_customize->add_control('slideshow_control', array(
'label' => __('Choose Slideshow', 'themename'),
'section' => 'slideshow_option',
'settings' => 'slideshow_settings',
'type' => 'select',
'choices' => $choices
));
0 commentaire