Come rendere una dichiarazione condizionale all’interno di $ output in shortcodes.php?

Ho uno shortcode che ha HTML in un campo $ output che è adorabile. Voglio solo aggiungere un paragrafo ad esso in fondo che è condizionale su questa affermazione:

 

Non riesco a capire come formattare una dichiarazione del genere (se ansible) in un campo $ output esistente.

Ecco come appare l’output $ al momento, voglio aggiungere questa condizione alla riga 8 e fondamentalmente ho un altro tag di paragrafo con qualche contenuto che mostra lì solo se l’affermazione è vera:

 '
'; } $output .= '
'

È ansible o devo fare un’altra condizione al codice corto con due uscite?

Fammi sapere se hai bisogno di più contesto dallo shortcode, non volevo perdere troppo spazio se il mio objective originale era ansible.

Solutions Collecting From Web of "Come rendere una dichiarazione condizionale all’interno di $ output in shortcodes.php?"

Se ti capisco bene, vuoi solo usare un ‘?’ tipo di istruzione if:

 $output = '

'.get_post_meta( get_the_ID(), 'destination', true ).'
'.get_post_meta( get_the_ID(), 'depart', true ).' to '.get_post_meta( get_the_ID(), 'return', true ).'

'.get_post_meta( get_the_ID(), 'projectdesc', true ).'

'; $output .= get_post_meta( get_the_ID(), 'campus', true ) ? '

True so do this paragraph

' : '

false, so do this instead

'; $output.='
';

Uno standard se altrimenti avrebbe funzionato bene, quindi non sono sicuro di dove fosse la confusione.

Un altro modo è utilizzare un buffer di output php che funzioni in questo modo:

 ob_start(); ?> 
etc etc < ?php if(get_post_meta( get_the_ID(), 'campus', true )) {?>

True paragraph

< ?php }else{ ?>

false paragraph

< ?php } ?>

E poi quando hai finito con tutti i tuoi output lo metti nella tua variabile $ output in questo modo:

 $output = ob_get_clean(); 

Quando si avvia un buffer di output significa fondamentalmente che qualsiasi HTML che si inserisce al di fuori dei tag PHP va nel buffer anziché essere trasmesso al browser. Lo preferisco a volte quando c’è un sacco di condizioni e logiche diverse nell’output.

ob_start , ob_get_clean

$output = 'Hello World !'; significa che hai appena assegnato un valore in $ output variable.but quando usi like
$a = 1; $output = 'Hello'; if($a == 1){ $output .= 'World'; }else{ $output .= 'Universe'; } $output .= '!'; se stampi questo $ output, l’output sarà lo stesso di Hello World ! a causa della concatenazione.

quindi se non sei chiaro riguardo (your_statement) ? 'True' : 'False' (your_statement) ? 'True' : 'False' come get_post_meta( get_the_ID(), 'campus', true ) ? '

True so do this paragraph

' : '

false, so do this instead

'; get_post_meta( get_the_ID(), 'campus', true ) ? '

True so do this paragraph

' : '

false, so do this instead

';
puoi scrivere questo invece questo
if(get_post_meta( get_the_ID(), 'campus', true )){ $output .= '

True so do this paragraph

'; }else{ $output .=

false, so do this instead

'; }

Grazie Musa