- Solution 1 : ajouter une catégorie « featured » et filtrer sur cette catégorie.
- Solution 2 (à tester) : créer une taxonomie « featured » et un choix « oui ». Voir si gridbuilder permet de filtrer sur une taxonomie custom
- Solution ACF
Solution ACF
- Etape 1 : créer un champ ACF featured (case à cocher true/false)
- Etape 2 : dans la grille Gridbuilder, utiliser l’option custom field pour filtrer la grille : ajouter le custom field créé avec ACF puis utiliser « numérique » puis = 1.
- Etape 3 : pour faire remonter l’info dans les colonnes de l’interface wordpress, puis dans le quickedit, ajouter ce code au function.php du theme enfant (ici le nom du champ ACF est ‘featured’. A remplacer si besoin.
/**ajout champ featured dans quick edit**/
function my_custom_columns($columns) {
$columns['featured'] = 'featured'; // Remplacez "my_acf_field" par votre vrai champ ACF
return $columns;
}
add_filter('manage_posts_columns', 'my_custom_columns'); // Remplacez 'posts' si vous travaillez avec un CPT
function my_custom_columns_content($column_name, $post_id) {
if ($column_name === 'featured') {
echo get_field('featured', $post_id); // Remplacez "my_acf_field" par votre vrai champ ACF
}
}
add_action('manage_posts_custom_column', 'my_custom_columns_content', 10, 2);
function my_custom_quick_edit($column_name, $post_type) {
if ($column_name !== 'featured') {
return;
}
?>
<fieldset class="inline-edit-col-right">
<div class="inline-edit-col">
<label>
<span class="title">Featured</span>
<span class="input-text-wrap">
<input type="text" name="featured" id="featured" value="">
</span>
</label>
</div>
</fieldset>
<?php
}
add_action('quick_edit_custom_box', 'my_custom_quick_edit', 10, 2);
function my_custom_quick_edit_js() {
?>
<script>
jQuery(document).ready(function($) {
var $wp_inline_edit = inlineEditPost.edit;
inlineEditPost.edit = function(id) {
$wp_inline_edit.apply(this, arguments);
var post_id = (typeof(id) === 'object') ? parseInt(this.getId(id)) : 0;
if (post_id > 0) {
var custom_field_value = $('#post-' + post_id).find('.column-featured').text().trim();
$('#featured').val(custom_field_value);
}
}
});
</script>
<?php
}
add_action('admin_footer', 'my_custom_quick_edit_js');
function my_custom_quick_edit_save($post_id) {
if (isset($_POST['featured'])) {
update_field('featured', sanitize_text_field($_POST['featured']), $post_id);
}
}
add_action('save_post', 'my_custom_quick_edit_save');