web-dev-qa-db-fra.com

Mon shortcode apparaît deux fois

Le problème: J'ai créé un type d'article personnalisé et un shortcode pour afficher ses informations. Je l'ai déjà fait auparavant et cela n'a pas posé de problème. Lorsque j'affiche ce code court, le contenu du code court se répète deux fois sur la page.

Le code: J'ai ajouté ces actions et fonctions au bas du fichier principal du plugin (celui qui commence par plugin-name.php dans le passe-partout)

function custom_post_type() {

$labels = array(
    'name'                  => _x( 'Carousel ', 'Post Type General Name', 'text_domain' ),
    'singular_name'         => _x( 'Carousel', 'Post Type Singular Name', 'text_domain' ),
    'menu_name'             => __( 'Carousel', 'text_domain' ),
    'name_admin_bar'        => __( 'Carousel', 'text_domain' ),
    'archives'              => __( 'Carousel Archives', 'text_domain' ),
    'parent_item_colon'     => __( 'Parent Item:', 'text_domain' ),
    'all_items'             => __( 'All Posts', 'text_domain' ),
    'add_new_item'          => __( 'Add New', 'text_domain' ),
    'add_new'               => __( 'Add New', 'text_domain' ),
    'new_item'              => __( 'New Carousel', 'text_domain' ),
    'edit_item'             => __( 'Edit Carousel', 'text_domain' ),
    'update_item'           => __( 'Update Carousel', 'text_domain' ),
    'view_item'             => __( 'View Carousel', 'text_domain' ),
    'search_items'          => __( 'Search Featured Blogs', 'text_domain' ),
    'not_found'             => __( 'Not found', 'text_domain' ),
    'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ),
    'featured_image'        => __( 'Featured Image', 'text_domain' ),
    'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
    'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
    'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
    'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
    'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
    'items_list'            => __( 'Items list', 'text_domain' ),
    'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
    'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
);
$args = array(
    'label'                 => __( 'Post Type', 'text_domain' ),
    'description'           => __( 'Post Type Description', 'text_domain' ),
    'labels'                => $labels,
    'supports'              => array( ),
    'taxonomies'            => array( 'category', 'post_tag' ),
    'hierarchical'          => false,
    'public'                => true,
    'show_ui'               => true,
    'show_in_menu'          => true,
    'menu_position'         => 5,
    'show_in_admin_bar'     => true,
    'show_in_nav_menus'     => true,
    'can_export'            => true,
    'has_archive'           => true,
    'exclude_from_search'   => false,
    'publicly_queryable'    => true,
    'capability_type'       => 'page',
    'menu_icon'                => 'dashicons-welcome-view-site',
);
register_post_type( 'zeebo-carousel', $args );

}

add_action( 'init', 'custom_post_type', 0 );


function carousel_shortcode_func( $atts ) {

$a = shortcode_atts( array(
'id' =>  false,
'foo' => 'something',
'bar' => 'something else',
), $atts );

ob_start();

?>

shortcode content here<br />

<?php

return ob_get_contents();

}
add_shortcode( 'carousel', 'carousel_shortcode_func' );

Actions que j'ai déjà entreprises pour résoudre ce problème:
1. Thèmes changés
2. Désactiver tous les autres plugins
3. Réécrit le code
3. Recherche Google

Comment puis-je afficher le contenu une seule fois par shortcode?

1
brothman

Cela concerne plus php que wp, mais ob_get_contents renvoie le tampon sans l'effacer. Donc, vous obtenez votre contenu de tampon deux fois. Utilisez ob_get_clean pour effacer le tampon en le renvoyant.

4
cjbj