web-dev-qa-db-ja.com

ブログテンプレートの投稿オブジェクトを取得する方法

ページテンプレートファイルでグローバルな$post_objectから属性を取得することに大きな問題があります。

私はTemplate Name: Blog Pageであるtemplate-blog.phpを持っています

そのページでは、現在のページのパーマリンクを使って、Ajaxを使ってもっと投稿をロードしています。

したがって、基本的に私は同じURLでAjaxリクエストを行います。template-blog.php$_POST['load_more']がtrueの場合は条件になり、yesの場合は投稿の一部を返します。

私の問題は、このページがWordPress上のブログページとして設定されているときに$post変数を使用してページIDまたはページパーマリンクを取得できないことです(Settings-Reading-Posts Page)。

template-blog.phpが投稿ページとして設定されている場合、$post変数は$wp_queryがその投稿の配列に持つ最初の投稿です。

私は十分に明確だったことを願っています。

説明

通常のページの状態パーマリンクはページのパーマリンクです:

get_header();
$link = get_the_permalink();

しかし、このページが投稿ページとして設定されている場合、パーマリンクは$ wp_queryの最初の投稿のパーマリンクです。

get_header();
$link = get_the_permalink();
1
Burimi

表示しているページにAJAXリクエストを投稿しないでください。 代わりにAJAX AP​​I を使用してください。

ブログページのパーマリンクを取得するには、次のようにします。

get_permalink( get_option( 'page_for_posts' ) );
1
fuxia