Używam WordPress CMS i wtyczki CMB2 do tworzenia metaboksów i niestandardowych pól. Więc staram się zrobić na frontowych rzeczach

Jeśli my_Custom_text_field ma coś wewnątrz (wypełnione) - a następnie uzyskać te dane, ale jeśli jest pusty pokazać tekst. Używam COMB2 Custom Metabox Plugin, aby wykonać niestandardowe metaboksy i pola. Mam pierwszą część

    <?php $seo_title = get_post_meta( get_the_ID(), 'seo_general_title', true );  echo esc_html( $seo_title );?>

Ale jak uzyskać mój niestandardowy tekst, jeśli to pole jest puste, nie wiem. był taki sam problem, ale nie działa dla mnie https://css-tricks.com/forums/topic/cmb2-display-group-field-meta-data-if-exists-if-empty-display-default-text/ Może ktoś może pomóc? dzięki.

3
nito 17 luty 2017, 16:40

2 odpowiedzi

Najlepsza odpowiedź

Ta odpowiedź powinna ci pomóc:

https://wordpress.stackexchange.com/questions/56597/if-get-post-Meta-is-ipty-do-something.

  <?php $seo_title = get_post_meta( get_the_ID(), 'seo_general_title', true ); 
  if ( !empty($seo_title)){
     echo $seo_title;
  }
 ?>
1
Community 13 kwiecień 2017, 12:37
<?php 
$seo_title = get_post_meta(get_the_ID(), 'seo_general_title', true);
$seo_title = (empty($seo_title)) ? "Default Value" : $seo_title;
echo $seo_title;

Lub mój preferowany sposób, ponieważ uważam, że jego czytelność jest lepsza (definiujesz wartość w prawo w klauzuli, ale uważaj, aby nie zapomnieć zawsze umieść przypisanie w nawiasach prostych )

<?php 
if (empty($seo_title = get_post_meta(get_the_ID(), 'seo_general_title', true)))
    $seo_title = "Default Value";
echo $seo_title;

Lub "najbardziej podstawowy" sposób - ale oczekuje, że funkcja Get_post_meta () zawsze zwraca wartość ciągu .

<?php
$seo_title = get_post_meta(get_the_ID(), 'seo_general_title', true);
if ($seo_title == "") {
    $seo_title = "Default Value";
}
echo $value;

W końcu naprawdę zależy od twojego gustu.

1
Adam K. 17 luty 2017, 14:32