web-dev-qa-db-fra.com

comment obtenir des messages par type de message personnalisé puis afficher les champs personnalisés?

J'ai des types de messages personnalisés pour les recettes, et dans ce cadre j'ai configuré les champs personnalisés avancés (à partir du plugin).

Dans ce type de message personnalisé, j'ai plusieurs catégories. Deux questions:

1.) Comment puis-je obtenir tous les messages d'une catégorie personnalisée? Je comprends comment afficher les champs personnalisés, mais je ne sais pas comment appeler tous les articles d’une catégorie personnalisée, je peux alors afficher son titre, son image et son lien.

2.) Dans un scénario de type publication personnalisée, est-il préférable de configurer également des catégories personnalisées ou d'utiliser les catégories de publication génériques?

J'ai essayé le get_posts, puis essayé en obtenant des messages par catégorie personnalisée. par exemple

<?php
$args = array(
     'posts_per_page' => 8,
     'orderby' => 'Rand',
     'post_type' => 'recipes',
     'type' => 'side-dishes',
     'post_status' => 'publish'
);
$show_albums = get_posts( $args );
?>

Je ne connais pas l'implémentation exacte, puisque post_type est une publication personnalisée. Je suppose que je devrais en faire une pour chaque utilisation probable de l'utilisation de the_field (à partir d'ACF).

=============================================== ========= Ok après avoir accepté la suggestion ci-dessous, voici ce que j'ai à faire savoir s'il vous plaît si je le fais correctement?

voici la requête - qui semble fonctionner:

<?php

// The Query
$the_query = new WP_Query($args = array(
    'post_type' => 'recipes',
    'custom_cat' => 'side-dishes'
) );

// The Loop
if ( $the_query->have_posts() ) {
        echo '<ul>';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
        echo '</ul>';
} else {
    // no posts found
}
/* Restore original Post Data */
wp_reset_postdata();?>

J'ai enregistré la taxonomie, mais ce qui me dérange, c'est que mon type de message enregistré est une recette. Register_taxonomy ne doit-il pas être une "recette" et non "custom_cat?"

register_taxonomy( 'custom_cat', 
        array('recipes'), /* if you change the name of register_post_type( 'custom_type', then you have to change this */
        array('hierarchical' => true,     /* if this is true, it acts like categories */
            'labels' => array(
                'name' => __( 'Recipe Categories', 'bonestheme' ), /* name of the custom taxonomy */
                'singular_name' => __( 'Recipe Category', 'bonestheme' ), /* single taxonomy name */
                'search_items' =>  __( 'Search Recipe Categories', 'bonestheme' ), /* search title for taxomony */
                'all_items' => __( 'All Recipe Categories', 'bonestheme' ), /* all title for taxonomies */
                'parent_item' => __( 'Parent Recipe Category', 'bonestheme' ), /* parent title for taxonomy */
                'parent_item_colon' => __( 'Parent Custom Category:', 'bonestheme' ), /* parent taxonomy title */
                'edit_item' => __( 'Edit Custom Category', 'bonestheme' ), /* edit custom taxonomy title */
                'update_item' => __( 'Update Custom Category', 'bonestheme' ), /* update title for taxonomy */
                'add_new_item' => __( 'Add New Custom Category', 'bonestheme' ), /* add new title for taxonomy */
                'new_item_name' => __( 'New Custom Category Name', 'bonestheme' ) /* name title for taxonomy */
            ),
            'show_admin_column' => true, 
            'show_ui' => true,
            'query_var' => true,
            'rewrite' => array( 'slug' => 'custom-slug' ),
        )
    );

voici le type de courrier recommandé:

function create_recipe() { 
    // creating (registering) the custom type 
    register_post_type( 'recipes', /* (http://codex.wordpress.org/Function_Reference/register_post_type) */
        // let's now add all the options for this post type
        array( 'labels' => array(
            'name' => __( 'Recipes', 'bonestheme' ), /* This is the Title of the Group */
            'singular_name' => __( 'Recipe', 'bonestheme' ), /* This is the individual type */
            'all_items' => __( 'All Recipes', 'bonestheme' ), /* the all items menu item */
            'add_new' => __( 'Add New Recipe', 'bonestheme' ), /* The add new menu item */
            'add_new_item' => __( 'Add Recipe', 'bonestheme' ), /* Add New Display Title */
            'edit' => __( 'Edit', 'bonestheme' ), /* Edit Dialog */
            'edit_item' => __( 'Edit Recipe', 'bonestheme' ), /* Edit Display Title */
            'new_item' => __( 'New Recipe Type', 'bonestheme' ), /* New Display Title */
            'view_item' => __( 'View Recipe', 'bonestheme' ), /* View Display Title */
            'search_items' => __( 'Search Recipes', 'bonestheme' ), /* Search Custom Type Title */ 
            'not_found' =>  __( 'Nothing found in the Database.', 'bonestheme' ), /* This displays if there are no entries yet */ 
            'not_found_in_trash' => __( 'Nothing found in Trash', 'bonestheme' ), /* This displays if there is nothing in the trash */
            'parent_item_colon' => ''
            ), /* end of arrays */
            'description' => __( "Recipes section for It's Just food", 'bonestheme' ), /* Custom Type Description */
            'public' => true,
            'publicly_queryable' => true,
            'exclude_from_search' => false,
            'show_ui' => true,
            'query_var' => true,
            'menu_position' => 4, /* this is what order you want it to appear in on the left hand side menu */ 
            'menu_icon' => get_stylesheet_directory_uri() . '/library/images/custom-post-icon.png', /* the icon for the custom post type menu */
            'rewrite'   => array( 'slug' => 'recipes', 'with_front' => false ), /* you can specify its url slug */
            'has_archive' => 'recipes', /* you can rename the slug here */
            'capability_type' => 'post',
            'hierarchical' => false,
            /* the next one is important, it tells what's enabled in the post editor */
            'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'sticky')
        ) /* end of options */
    ); /* end of register post type */
4
user31344

Cela pourrait être une bonne lecture pour vous . Je ne sais pas exactement ce que vous cherchez à faire, je vais donc l'exposer dans un format simple.

Cette requête extraira toutes les publications sous le type de publication recipes où le champ personnalisé side-dishes existe. Vous pouvez ensuite les parcourir et les afficher comme vous le souhaitez.

$recipes = new WP_Query(
    array(
        'post_type' => 'recipes',
        'posts_per_page' => 8,
        'orderby' => 'Rand',
        'post_status' => 'publish',
        'meta_query' => array(
            array(
                'key' => 'side-dishes'
                'compare' => 'EXISTS'
            )
        )
    )
);

Cette deuxième requête extraira toutes les publications sous la taxonomie my_taxonomy_name_here que vous devrez remplacer par votre taxonomie. Il recherche les catégories avec le slug my_category_slug_here que vous devrez remplacer par le slug de la catégorie. Vous pouvez remplacer "slug" par ID et le retirer si vous le souhaitez.

$recipes = new WP_Query(
    array(
        'post_type' => 'recipes',
        'posts_per_page' => 8,
        'orderby' => 'Rand',
        'post_status' => 'publish',
        'tax_query' => array(
            array(
                'taxonomy' => 'my_taxonomy_name_here',
                'field' => 'slug',
                'terms' => 'my_category_slug_here'
            )
        )
    )
);

Vous pouvez ensuite parcourir chaque article comme une boucle normale:

<?php if($recipes->have_posts()) : ?>
    <?php while($recipes->have_posts()) : $recipes->the_post(); ?>
        <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>
    <?php endwhile; ?>
<?php endif; wp_reset_query(); ?>

Documentation sur WP_Query

Documentation sur Meta_Query

Documentation sur Tax_Query

4
Howdy_McGee