• Hello all,

    I’ve this problem, when editing a custom post type Yoast data change on website and custom type list of wordpress but not in the edit page.

    WordPress version: 3.4.2
    WordPress SEO version: 1.3.4.1

    my code for custom post-type:

    <?php
    /*
    Plugin Name: Ricette
    Description: Plugin per la gestione delle ricette
    Version: 1.0
    Author: Mauro Accornero
    Author URI: http://www.mauroaccornero.it/
    */
    
    add_action( 'init', 'create_ricette' );
    
    function create_ricette() {
    	register_post_type( 'ricette',
    	array(
    	'labels' => array(
    	'name' => 'Ricette',
    	'singular_name' => 'Ricette',
    	'add_new' => 'Aggiungi Nuova',
    	'add_new_item' => 'Aggiungi Nuova Ricetta',
    	'edit' => 'Modifica',
    	'edit_item' => 'Modifica Ricetta',
    	'new_item' => 'Nuova Ricetta',
    	'view' => 'Visualizza',
    	'view_item' => 'Visualizza Ricetta',
    	'search_items' => 'Cerca Ricetta',
    	'not_found' => 'Nessuna Ricetta trovata',
    	'not_found_in_trash' =>
    	'Nessun Ricetta trovata nel cestino',
    	'parent' => 'Padre Ricetta'
    	),
    	'public' => true,
    	'publicly_queryable' => true,
    	'menu_position' => 15,
    	'supports' =>
    	array( 'title','editor','thumbnail','excerpt' ),
    	'taxonomies' => array(/*'ingredienti',*/'portate','filtri'),
    	'menu_icon' =>
    	plugins_url( 'images/image.png', __FILE__ ),
    	'has_archive' => true
    	)
    	);
    	 $labels_portate = array(
        'name' =>  _x( 'Portate', 'taxonomy general name' ),
        'singular_name' => _x( 'Portata', 'taxonomy singular name' ),
        'search_items' =>  __('Search Portate') ,
        'all_items' =>  __('Tutte le Portate') ,
        'parent_item' =>  __('Portata Genitore') ,
        'parent_item_colon' =>  __('Portata Genitore:') ,
        'edit_item' =>  __('Modifica Portata') ,
        'update_item' =>  __('Aggiorna Portata') ,
        'add_new_item' =>  __('Aggiungi nuova Portata') ,
        'new_item_name' =>  __('Nome nuova Portata') ,
        'menu_name' => __('Portate'),
    	'separate_items_with_commas' => __('Separa i nomi delle portate con una virgola'),
    	'choose_from_most_used' => __('Scegli tra le portate più utilizzate')
      ); 	
    
      register_taxonomy('portate',array('ricette'), array(
        'labels' => $labels_portate,
        'show_ui' => true,
        'rewrite' => array( 'slug' => 'portate' )
      )); 
    
      /*portate order field*/
    
    // Add term page
    function pippin_taxonomy_add_new_meta_field() {
    	// this will add the custom meta field to the add new term page
    	echo "<div class='form-field'>
    		<label for='term_meta[custom_term_meta]'>Ordine portata</label>
    		<input type='text' name='term_meta[custom_term_meta]' id='term_meta[custom_term_meta]' value=''>
    	</div>";
    }
    add_action( 'portate_add_form_fields', 'pippin_taxonomy_add_new_meta_field', 10, 2 );
    
    // Edit term page
    function pippin_taxonomy_edit_meta_field($term) {
    	// put the term ID into a variable
    	$t_id = $term->term_id;
    	// retrieve the existing value(s) for this meta field. This returns an array
    	$term_meta = get_option( "taxonomy_$t_id" ); ?>
    	<tr class="form-field">
    	<th scope="row" valign="top"><label for="term_meta[custom_term_meta]">Ordine portata</label></th>
    		<td>
    			<input type="text" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="<?php echo esc_attr( $term_meta['custom_term_meta'] ) ? esc_attr( $term_meta['custom_term_meta'] ) : ''; ?>">
    			<p class="description"><?php _e( 'Enter a value for this field','pippin' ); ?></p>
    		</td>
    	</tr>
    <?php
    }
    add_action( 'portate_edit_form_fields', 'pippin_taxonomy_edit_meta_field', 10, 2 );
    
    // Save extra taxonomy fields callback function.
    function save_taxonomy_custom_meta( $term_id ) {
    	if ( isset( $_POST['term_meta'] ) ) {
    		$t_id = $term_id;
    		$term_meta = get_option( "taxonomy_$t_id" );
    		$cat_keys = array_keys( $_POST['term_meta'] );
    		foreach ( $cat_keys as $key ) {
    			if ( isset ( $_POST['term_meta'][$key] ) ) {
    				$term_meta[$key] = $_POST['term_meta'][$key];
    			}
    		}
    		// Save the option array.
    		update_option( "taxonomy_$t_id", $term_meta );
    	}
    }
    add_action( 'edited_portate', 'save_taxonomy_custom_meta', 10, 2 );
    add_action( 'create_portate', 'save_taxonomy_custom_meta', 10, 2 );
      /*portate order field*/
    
      $labels_ingredienti = array(
        'name' =>  _x('Ingredienti', 'taxonomy general name' ) ,
        'singular_name' =>  _x('Ingrediente', 'taxonomy singular name' ),
        'search_items' =>   __('Search Ingrediente' ),
        'all_items' =>  __('Tutte le Ingrediente' ),
        'parent_item' =>  __('Ingrediente Genitore') ,
        'parent_item_colon' =>  __('Ingrediente Genitore:') ,
        'edit_item' =>  __('Modifica Ingrediente') ,
        'update_item' => __('Aggiorna Ingrediente' ),
        'add_new_item' =>  __('Aggiungi nuovo Ingrediente' ),
        'new_item_name' =>  __('Nome nuovo Ingrediente' ),
        'menu_name' => __('Ingredienti'),
    	'separate_items_with_commas' => __('Separa i nomi degli ingredienti con una virgola'),
    	'choose_from_most_used' => __('Scegli tra gli ingredienti più utilizzati')
      ); 	
    
      register_taxonomy('ingredienti',array('ingredienti_piatti'), array(
        'labels' => $labels_ingredienti,
        'show_ui' => true,
        'rewrite' => array( 'slug' => 'ingredienti' )
      ));
    
      $labels_filtro = array(
        'name' =>  _x('Filtri', 'taxonomy general name' ) ,
        'singular_name' =>  _x('Filtro', 'taxonomy singular name' ),
        'search_items' =>   __('Cerca Filtro' ),
        'all_items' =>  __('Tutti i filtri' ),
        'parent_item' =>  __('Filtro Genitore') ,
        'parent_item_colon' =>  __('Filtro Genitore:') ,
        'edit_item' =>  __('Modifica Filtro') ,
        'update_item' => __('Aggiorna Filtro' ),
        'add_new_item' =>  __('Aggiungi nuovo Filtro' ),
        'new_item_name' =>  __('Nome nuovo Filtro' ),
        'menu_name' => __('Filtri') ,
    	'separate_items_with_commas' => __('Separa i nomi dei filtri con una virgola'),
    	'choose_from_most_used' => __('Scegli tra i filtri più utilizzate')
      ); 	
    
      register_taxonomy('filtri',array('ricette'), array(
        'labels' => $labels_filtro,
        'show_ui' => true,
        'rewrite' => array( 'slug' => 'filtri' )
      ));
    } 
    
    add_action( 'add_meta_boxes', 'meta_ricette_related_add' );
    function meta_ricette_related_add()
    {
    	add_meta_box( 'related-item', 'Contenuti Relazionati', 'meta_ricette_related_output', 'ricette', 'normal', 'high' );
    }
    
    function meta_ricette_related_output( $post )
    {
    
    	$values = get_post_custom( $post->ID );
    	$first_related_recipe = isset( $values['first_related_recipe'] ) ? esc_attr( $values['first_related_recipe'][0] ) : '';
    	$second_related_recipe = isset( $values['second_related_recipe'] ) ? esc_attr( $values['second_related_recipe'][0] ) : '';
    	$related_product = isset( $values['related_product'] ) ? esc_attr( $values['related_product'][0] ) : '';
    	wp_nonce_field( 'my_meta_box_nonce', 'meta_box_nonce' );
    	?>
    	<p>
    		<label for="related_product">Prodotto relazionato</label>
    				<?php
    		$args = array(
    		'post_type' => 'prodotti',
    		'nopaging'  => true
    		);
    		$query = new WP_Query( $args );
    		echo '<select name="related_product" id="related_product"><option value="">Seleziona un Prodotto</option>';
    		while ( $query->have_posts() ) : $query->the_post();
    			echo '<option value="'.get_the_ID().'" '.selected( $related_product, get_the_ID() ).'>';
    			the_title();
    			echo '</option>';
    		endwhile;
    		echo '</select>';
    		?>
    	</p>
    	<p>
    		<label for="first_related_recipe">Prima ricetta relazionata</label>
    		<?php
    		$args = array(
    		'post_type' => 'ricette',
    		'nopaging'  => true
    		);
    		$query = new WP_Query( $args );
    		echo '<select name="first_related_recipe" id="first_related_recipe"><option value="">Seleziona una Ricetta</option>';
    		while ( $query->have_posts() ) : $query->the_post();
    			echo '<option value="'.get_the_ID().'" '.selected( $first_related_recipe, get_the_ID() ).'>';
    			the_title();
    			echo '</option>';
    		endwhile;
    		echo '</select>';
    		?>
    
    	</p>
    	<p>
    		<label for="second_related_recipe">Seconda ricetta relazionata</label>
    		<?php
    		$args = array(
    		'post_type' => 'ricette',
    		'nopaging'  => true
    		);
    		$query = new WP_Query( $args );
    		echo '<select name="second_related_recipe" id="second_related_recipe"><option value="">Seleziona una Ricetta</option>';
    		while ( $query->have_posts() ) : $query->the_post();
    			echo '<option value="'.get_the_ID().'" '.selected( $second_related_recipe, get_the_ID() ).'>';
    			the_title();
    			echo '</option>';
    		endwhile;
    		echo '</select>';
    		?>
    	</p>
    	<?php
    }
    
    add_action( 'save_post', 'save_ricette_related_meta' );
    function save_ricette_related_meta( $post_id )
    {
    	// Bail if we're doing an auto save
    	if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    
    	// if our nonce isn't there, or we can't verify it, bail
    	if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'my_meta_box_nonce' ) ) return;
    
    	// if our current user can't edit this post, bail
    	if( !current_user_can( 'edit_post' ) ) return;
    
    	if( isset( $_POST['first_related_recipe'] ) )
    		update_post_meta( $post_id, 'first_related_recipe', esc_attr( $_POST['first_related_recipe'] ) );
    	if( isset( $_POST['second_related_recipe'] ) )
    		update_post_meta( $post_id, 'second_related_recipe', esc_attr( $_POST['second_related_recipe'] ) );
    	if( isset( $_POST['related_product'] ) )
    		update_post_meta( $post_id, 'related_product', esc_attr( $_POST['related_product'] ) );
    
    }
    
    add_filter( 'template_include',
    'include_template_function', 1 );
    
    function include_template_function( $template_path ) {
    if ( get_post_type() == 'ricette' ) {
    if ( is_single() ) {
    // checks if the file exists in the theme first,
    // otherwise serve the file from the plugin
    if ( $theme_file = locate_template( array
    ( 'single-ricette.php' ) ) ) {
    $template_path = $theme_file;
    } else {
    $template_path = plugin_dir_path( __FILE__ ) .
    '/single-ricette.php';
    }
    }
    }
    return $template_path;
    }
    
    ?>

    maybe the problem is in my code…

    http://wordpress.org/extend/plugins/wordpress-seo/

Viewing 1 replies (of 1 total)
  • Thread Starter Hateme84

    (@hateme84)

    I’ve tryed:
    wp_reset_postdata() no effects.
    wp_reset_query() no effects.
    renaming all var like $query,$post and $args no effect.

    Last thing i’ve tried in add_metabox using “low” instead of “high” for changin position of metabox and now work…

Viewing 1 replies (of 1 total)
  • The topic ‘Yoast data don't change when updating post’ is closed to new replies.