2017-07-30 4 views
0

ポストにメタデータがあり、それを機能別に表示する方法を確認するにはどうすればいいですか?投稿内容を確認して追加

私はポストタイプポートフォリオとメタフィールドを持っている(_wi_nextスクリプト部分と_wi_prevスクリプト部分)

function wi_next_prev_part_links($content) { 
global $wp_query; 
$postid = $wp_query->post->ID; 

if (is_singular('portfolio')) { 
    if (get_post_meta($postid, '_wi_prev-script-part', true)) { 
     $prev_script_part = get_post_meta($postid, '_wi_prev-script-part', true); 
     $content .= '<a href="'. get_the_permalink($prev_script_part) .'" class="">&larr; Prev Part Link</a>';; 
    } 
    if (get_post_meta($postid, '_wi_next-script-part', true)) { 
     $next_script_part = get_post_meta($postid, '_wi_next-script-part', true); 
     $content .= '<a href="'. get_the_permalink($next_script_part) .'" class="">Next Part Link &rarr;</a>'; 
    } 
} 
return $content; 
} 
add_filter ('the_content', 'wi_next_prev_part_links', 0); 
+0

コードは機能しませんか? $ postid varをデバッグしましたか? – TurtleTread

答えて

1

これには2通りの方法があります。 1つはメタキーの値をチェックし、もう1つはメタキーが存在するかどうかをチェックすることです。

メタキーはあなたしようとしたアクセスが存在しない場合、関数は空の文字列または空の配列を返します

としてはget_post_meta documentationで説明した値を確認します。

if (get_post_meta($postid, '_wi_prev-script-part', true)) 
{ 
    //Do something 
} 

キー

の確認:あなたはメタキーのような有効なメタデータを持っているかいないかどうかを確認するために、単純なifステートメントを使用することができますfalsy空の文字列と空の配列の両方があるので、ただし、空の文字列が有効な値と見なされる場合もあります。あなたのコードが空の文字列を望ましい値と見なすならば、メタキー自体の存在をチェックする必要があります。 get_post_custom_keys関数でこれを行うことができます:

if(in_array('_wi_prev-script-part', get_post_custom_keys($postid))) 
{ 
    //Do something 
} 
+0

ありがとう、コードを更新しました。多分誰かが便利になるでしょう –

関連する問題