web-dev-qa-db-ja.com

テンプレート投稿singel- {custom type} .phpを使ってループ内でカスタム投稿タイプの現在の投稿IDを取得するにはどうすればいいですか?

すべての投稿をループ処理するカスタム投稿タイプのテンプレートがあります。私が試しているのは、私がカスタム投稿ページに行ったときに、現在の投稿IDをループ内で取得したい場合です。

それで、パーマリンクがループの中のポストのために同じであるかどうかチェックすることを試みましたそれが同じなら私はループの現在のポストのポストIDを取得します。

これが私が試したコードです。

まず、パーマリンクをループの内側で確認するために外側に配置しようとしました。

$permalink = get_permalink();

今、私は現在の投稿のパーマリンクを持っています今私は現在の投稿のIDを取得したいです

if($query->have_posts()) : 
    while ($query->have_posts()) : $query->the_post();
        if(the_permalink()==$permalink){
            echo get_the_ID();
        }else{
            echo "not found";
        }
    endwhile;
    wp_reset_postdata();
endif;

私はsingle-{custom-post-name}.phpnot foundを取得しています。このテンプレートの現在の投稿IDを取得する方法を誰かに教えてもらえますか。

2
sun

つまり、メインループと$queryを使った2つ目のループの2つのループがあります。

2番目のループのある時点で、現在の投稿(ループの内側)と$queryループの内側の処理された投稿の間に一致があるかどうかを比較します。

私は正しいですか?

パーマリンクをチェックする代わりに、IDをチェックすることを提案します。

最初のループでは、現在の投稿IDを使って変数を作成します。

$current_post_id = $post->ID;

2回目のループでは、次のように比較します。

if($query->have_posts()) : while ($query->have_posts()) : $query->the_post();

    if( $current_post_id === $post->ID ) {
         echo $post->ID; 
    } else {
        echo "not found";
    }

endwhile; wp_reset_postdata(); endif;

それがあなたが探しているものであるかどうかわからない、私たちに知らせてください。

シモンズ:$my_prefix_queryのように、単にプラグインからの名前の衝突や何かを避けるために、私はあなたのクエリにもっと具体的な名前を使うことを付け加えるべきです。

3
Simon