から投稿/ページタイトルを取得します。の外部の管理パネルでpost_type(投稿/ページ/ポートフォリオ)の投稿タイトルを取得しようとしています。ループ。

考えられるすべての解決策をほぼ試しましたが、成功しませんでした:

//method 1 $content_post = get_post(3208); $_menu_item_title = $content_post->post_title; //(Trying to get property of non-object error) //method 2 $obj = get_post_type_object($_menu_item_type); $content_post = get_post(3208); //(Trying to get property of non-object error) $_menu_item_title = $obj->$content_post->post_title; //method 3 $_menu_item_title = the_title(3208); //(no error but nothing is store) //method 4 $_menu_item_title = get_the_title(3208); //(no error but nothing is store) 

コメント

  • 念のため;)メソッド1が"非オブジェクトエラー"を返した場合、通常は次のことができることを意味します'投稿が見つかりません。
  • 方法2と3は正しく機能しません。'の場合は投稿IDが3208の場合、メソッド1、4が機能します。
  • メソッド1の場合、var_dump($ content_post); exit; $ content_postの後、postgetまたはを確認します。出力がNULLの場合は、投稿IDが終了するかどうかを確認してください。

回答

IDしかない場合投稿のタイトルだけが必要な場合は、 がこれを行うための最良の方法だと思います。

この関数の構文:

get_post_field( $field, $post_id, $context ); 

つまり、問題を解決するコードは次のようになります。

$title = get_post_field( "post_title", $POST_ID ); // most probably you want to display the title, so you can ignore last param 

そして、コードスニペットに対処する…最初の方法が機能するはずです。投稿が存在し、公開されているか、現在のユーザーが表示できます。

2番目の方法は機能しません。意味がありません。

3番目と4番目のメソッドも機能しません。これらの関数はpost_IDをparamとして受け取らないため、このような使用はあまり意味がありません…

回答

すでに指摘したように、「非オブジェクトエラー」は、get_post()が何も返さず、投稿が存在しないことを意味します。

ただし、この投稿が存在することが確実な場合は、コーデックスからを取得した別の方法を次に示します

<?php $post_7 = get_post(7, ARRAY_A); $title = $post_7["post_title"]; ?> 

ここでも何も返されない場合、この投稿は公開されており、ドラフトステータスではありませんか?

コメント

  • get_post_fieldを使用する方が効率的ではないでしょうか?
  • @KrzysiekDr óżdżget_post_field()はget_post()なので、'フェッチ側のパフォーマンスに違いはありません

回答

folを使用して投稿の関連タイトルを取得しましたローイングプロセス。最初:ダッシュボードから投稿IDの情報を取得します[投稿にカーソルを合わせてダッシュボードの左下を確認します(ID情報が表示されます)]

2番目:使用したワードプレスループ内:

<?php if(have_posts()): while(have_posts()) : $var_name= get_the_ID(); ?> <?php if($var_name == post-id-value): get_the_title(); ?> <?php endwhile; endif; ?> 

ここで、post-id-valueは、投稿のIDである整数値です。get_the_title()値を変数に格納し、関数を次のようにエコーできます。希望の場所に値をエコーアウトします。注*ワードプレスのダッシュボードに少なくとも1つの投稿が必要です。そうしないと、予期しない結果が生じる可能性があります(ブラウザでもコンピュータがクラッシュする可能性があります)

回答

このデフォルトのWPメソッドを使用すると、現在のページと現在の投稿のタイトルを取得できます。

<?php echo get_the_title(); 

コメント

  • 著者は、get_the_title()を使用しようとしたことをすでに指摘しています。また、ループの外で必要になるため、 現在の投稿はありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です