web-dev-qa-db-fra.com

Combinez plusieurs valeurs de champs personnalisés en une seule valeur

Je suis sûr que c'est une question assez fondamentale mais je n'arrive pas à comprendre.

J'ai plusieurs valeurs de champ personnalisées pour les adresses dans mon type de publication personnalisé et je souhaite les enregistrer sous forme de valeur unique ou de tableau afin que je puisse les afficher au cours d'un appel plutôt que de plusieurs. Je voudrais aussi sortir l'adresse séparée par des virgules, mais il faut d'abord remplacer toutes les virgules entrées par l'utilisateur dans le backend wordpress, de sorte que je ne me retrouve pas, par exemple, '10 high street , London , W11 1TT '

J'ai ceci actuellement:

<?php global $post;
$address_name = get_post_meta( $post->ID, '_mfl_entry_address_name', true );
$address_street = get_post_meta( $post->ID, '_mfl_entry_address_street', true );
$address_line_2 = get_post_meta( $post->ID, '_mfl_entry_address_line_2', true );
$address_line_3 = get_post_meta( $post->ID, '_mfl_entry_address_line_3', true );
$address_postcode = get_post_meta( $post->ID, '_mfl_entry_address_postcode', true );
?>

Comment pourrais-je les mettre dans une seule valeur appelée "adresse", effacer toutes les virgules ajoutées par l'utilisateur, puis afficher l'adresse avec chaque valeur séparée par une virgule, à l'exception de la dernière?

Merci pour toute aide

1
Xav

Mis à jour

    <?php global $post;
    $address_name = str_replace(
        ',', 
        '',
         get_post_meta( $post->ID, '_mfl_entry_address_name', true )
    );

    $address_street = str_replace(
        ',', 
        '',
         get_post_meta( $post->ID, '_mfl_entry_address_street', true )
    );

    $address_line_2 = str_replace(
        ',', 
        '',
         get_post_meta( $post->ID, '_mfl_entry_address_line_2', true )
    );

    $address_line_3 = str_replace(
        ',', 
        '',
         get_post_meta( $post->ID, '_mfl_entry_address_line_3', true )
    );

    $address_postcode = str_replace(
        ',', 
        '',
         get_post_meta( $post->ID, '_mfl_entry_address_postcode', true )
    );

    $full_address = array(
        $address_name, 
        $address_street, 
        $address_line_2,
        $address_line_3,
        $address_postcode
    );

    $output = '';
    $glue = ',';
    foreach($full_address as $value){
        if(!empty($value)){
            $output .= $value.$glue;
        }
    }
    $output = trim($output, $glue);

    echo $output;
    ?>

Faites-moi savoir si cela fonctionne.

2
GhostToast