web-dev-qa-db-ja.com

Index.phpでのWordpress 3.5でのギャラリー画像の抽出

私はすべてのギャラリー投稿のために私のフロントブログページにスライダーを追加しようとしています、しかし、私は以下のコードを使用して、投稿ギャラリーから画像を抽出することに少し問題があります:

$post_content = get_the_content();
preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids);
$array_id = explode(",", $ids[1]);

問題は、各ギャラリー投稿がテキスト付きの段落、「続きを読む」休憩、および休憩後のギャラリーで構成されているため、get_the_content()で画像がスキップされることです。彼らは休憩の後だからです。中断に関係なく、コンテンツ全体を取得するにはどうすればよいですか。

それを読むためにそれをクリックする前に私がギャラリーの記事についての短い説明が欲しいので、私は「もっと読む」を使います。

1
Ziik

get_the_contentはテンプレートタグであり、ループ内でのみ確実に機能します。つまり、代わりに$postグローバルを使うこともできるはずです。

global $post; // may not be necessary unless you have scope issues
              // for example, this is inside a function
$post_content = $post->post_content;
preg_match('/\[gallery.*ids=.(.*).\]/', $post_content, $ids);
$array_id = explode(",", $ids[1]);

実際に画像を取得するには、 wp_get_attachment_image を使用します。

foreach ($array_ids as $id) {
  echo  wp_get_attachment_image($id);
}
1
s_ha_dum