Cum să creez o postare recomandată într-un tip de postare personalizat?

21 feb. 2011, 17:12:25
Vizualizări: 15K
Voturi: 3

Procedez exact la fel ca în cazul postărilor normale? Folosesc o variabilă globală $featured_cat și o extrag. Ar trebui să procedez la fel și aici?

Sau ar trebui să folosesc o taxonomie personalizată asociată? Sau poate supraanalizez? Chiar ar exista un beneficiu în utilizarea taxonomiilor?

Care este abordarea corectă aici, băieți?

2
Comentarii

Poți să editezi întrebarea și să clarifici ce este variabila ta $global_cat? ID-ul unei categorii specifice numite "Featured"?

Jan Fabry Jan Fabry
21 feb. 2011 17:22:22

nu-nu..în functions.php folosesc o variabilă globală numită $featured_cat pentru a seta o singură categorie featured, atât. De fapt, asta e informație trivială din partea mea, pentru că tot ce vreau să știu cu adevărat este cum să setez un post featured în cadrul unei serii de conținut de tip custom post type.

Amit Erandole Amit Erandole
21 feb. 2011 17:30:55
Toate răspunsurile la întrebare 2
0

Înregistrează un tip de postare video și o "Taxonomie Featured" "Caseta Select Personalizată Meta Featured"

Tipul de postare:

function c3m_reg_vid_post() {
            
              $labels = array(
                'name' => _x('Videoclipuri', 'nume general tip postare'),
                'singular_name' => _x('Videoclip', 'nume singular tip postare'),
                'add_new' => _x('Adaugă nou', 'videoclip'),
                'add_new_item' => __('Adaugă Videoclip Nou'),
                'edit_item' => __('Editează Videoclip'),
                'new_item' => __('Videoclip Nou'),
                'view_item' => __('Vezi Videoclip'),
                'search_items' => __('Caută Videoclipuri'),
                'not_found' =>  __('Niciun videoclip găsit'),
                'not_found_in_trash' => __('Niciun videoclip găsit în Coșul de Gunoi'), 
                'parent_item_colon' => ''
              );
              $args = array(
                'labels' => $labels,
                'public' => true,
                'publicly_queryable' => true,
                'show_ui' => true, 
                'query_var' => true,
                'show_in_nav_menus' => true,
                'can_export' => true,
                'rewrite' => array('slug' => 'video', 'with_front' => false),
                'capability_type' => 'post',
                'register_meta_box_cb' => 'c3m_video_meta', //Acesta este pentru cutia noastră meta personalizată
                'hierarchical' => false,
                'menu_position' => 10,
               'taxonomies' => array('featured'),
                'supports' => array('title', 'editor' 'custom-fields')
              ); 
              register_post_type('video', $args );
}

###Taxonomia

La a doua privire, să folosim un câmp personalizat pentru postarea video featured și să creăm o casetă select dropdown meta personalizată pentru a alege dacă postarea este featured.

Configurează cutia meta personalizată:

//hook pentru a adăuga o cutie meta
add_action( 'add_meta_boxes', 'c3m_video_meta' );

function c3m_video_meta() {
    //crează o cutie meta personalizată
    add_meta_box( 'c3m-meta', 'Selector Videoclip Featured', 'c3m_mbe_function', 'video', 'normal', 'high' );
}

function c3m_mbe_function( $post ) {

    //preia valorile meta dacă există
    $c3m_mbe_featured = get_post_meta( $post->ID, '_c3m_mbe_featured', true );

    echo 'Selectează da mai jos pentru a face videoclipul featured';
    ?>
    <p>Featured: 
    <select name="c3m_mbe_featured">
        <option value="No" <?php selected( $c3m_mbe_featured, 'no' ); ?>>Nicidecum</option>
        <option value="Yes" <?php selected( $c3m_mbe_featured, 'yes' ); ?>>Sigur, Featured Acest Videoclip</option>
    </select>
    </p>
    <?php
}

//hook pentru a salva datele din cutia meta
add_action( 'save_post', 'c3m_mbe_save_meta' );
function c3m_mbe_save_meta( $post_ID ) {
    global $post;
    if( $post->post_type == "video" ) {
        if ( isset( $_POST ) ) {
            update_post_meta( $post_ID, '_c3m_mbe_featured', strip_tags( $_POST['c3m_mbe_featured'] ) );
        }
    }
}

}

Iată micul nostru selector cool de videoclipuri featured pe care tocmai l-am creat: Selector Videoclipuri Featured

Acum să interogăm postările video care sunt featured:

$args = array(
    'post_type' => 'video',
    'meta_query' => array(
        array(
            'key' => 'c3m_mbe_featured',
            'value' => 'yes',
            'compare' => 'NOT LIKE'
        )
    )
 );
$query = new WP_Query( $args );
23 apr. 2011 08:42:28
3

La fel ca în cazul oricărui alt tip de postare, de fapt...folosește o categorie...sau orice altă metodă preferi (etichetă, taxonomie personalizată, metadate/câmp personalizat,...).

21 feb. 2011 17:42:48
Comentarii

Am înțeles, dar mi-ar plăcea să văd un exemplu care folosește taxonomie personalizată pentru un tip de postare personalizată pentru videoclipuri.

cineva?

Amit Erandole Amit Erandole
21 feb. 2011 18:01:32

Cred că "Postări lipicioase" nu sunt suportate pentru tipurile de postări personalizate. Cel puțin acest tichet relevant a fost anulat.

Jan Fabry Jan Fabry
21 feb. 2011 18:18:12

@Ian Fabry ai dreptate, am editat răspunsul.

wyrfel wyrfel
22 feb. 2011 05:56:18