web-dev-qa-db-ja.com

カスタム項目をメニュー項目に呼び出す

Wordpressにナビゲーションメニューがあります。ページに "menu_icon"というカスタムフィールドがあるかどうかを確認し、存在する場合は、そのカスタムフィールドを対応するメニュー項目に追加します。これはある種のwalker関数の拡張を必要とすると確信していますが、私はPHPとWordpressには少し新しいです。私は周りを検索しましたが、適切なチュートリアルを見つけられませんでした。

例えば:(通常メニュー)

<ul>
   <li><a href="#">link</a></li>
</ul>

(custom)
<ul>
   <li><span class="icon" style="background-image:url(CUSTOM FIELD CALLED HERE);"></span><a href="link">link</a></li>
</ul>
5
Matt Stvartak

これは、カスタムフィールドがあるかどうかを確認するために使用したものです。私はあなたもそれを使うことができると確信しています。

<?php 
    $custom_field = get_post_meta($post->ID, 'Your Custom Field Name', true);

    // Checks to see if there is a value in the custom field
    if($custom_field != '') { echo $custom_field; }
?>

上記のコードでは、おそらく次のようになります。

<ul>
   <li><span class="icon" style="background-image:url(<?php 
    $custom_field = get_post_meta($post->ID, 'Your Custom Field Name', true);

    // Checks to see if there is a value in the custom field
    if($custom_field != '') { echo $custom_field; }
?>);">   </span><a href="link">link</a></li>
</ul>
2
Nicole

Get_post_meta関数を使うことができます。

<?php 
$value = get_post_meta($post->ID, 'CUSTOM_FIELD_NAME', true);

if($value != '') {
  echo $value;
} 
?>

それについての詳細をここに読んでください: http://codex.wordpress.org/Function_Reference/get_post_meta

0
david