关于获取帖子库图片URL的问题

时间:2015-06-04 作者:Suffii

我正在尝试将附加厨房的URL放入名为Gallery Page. 我试图使用Codex的代码This Page (get post gallery images). 但是我没有在页面上看到任何东西!

你能告诉我我做错了什么吗?

<?php
/**
 * Template Name: Gallery Page
 *
 */

 if ( have_posts() ) {
    while ( have_posts() ) {
        the_post(); 
        function pw_show_gallery_image_urls( $content ) {

    global $post;

    // Only do this on singular items
    if( ! is_singular() )
        return $content;

    // Make sure the post has a gallery in it
    if( ! has_shortcode( $post->post_content, \'gallery\' ) )
        return $content;

    // Retrieve the first gallery in the post
    $gallery = get_post_gallery_images( $post );

    $image_list = \'<ul>\';

    // Loop through each image in each gallery
    foreach( $gallery as $image_url ) {

        $image_list .= \'<li>\' . \'<img src="\' . $image_url . \'">\' . \'</li>\';

    }

    $image_list .= \'</ul>\';

    // Append our image list to the content of our post
    $content .= $image_list;

    return $content;

 }
 add_filter( \'the_content\', \'pw_show_gallery_image_urls\' );
    } // end while
} // end if
?>

1 个回复
SO网友:s_ha_dum

您的代码将导致致命错误,因为您在循环中定义了一个函数,因此在此后的每次迭代中都会重新定义该函数。这是问题的一部分。查看清理后的代码:

function pw_show_gallery_image_urls( $content ) {

  global $post;

  // Only do this on singular items
  if( ! is_singular() )
      return $content;

  // Make sure the post has a gallery in it
  if( ! has_shortcode( $post->post_content, \'gallery\' ) )
      return $content;

  // Retrieve the first gallery in the post
  $gallery = get_post_gallery_images( $post );

  $image_list = \'<ul>\';

  // Loop through each image in each gallery
  foreach( $gallery as $image_url ) {
      $image_list .= \'<li>\' . \'<img src="\' . $image_url . \'">\' . \'</li>\';
  }

  $image_list .= \'</ul>\';

  // Append our image list to the content of our post
  $content .= $image_list;

  return $content;
}
add_filter( \'the_content\', \'pw_show_gallery_image_urls\' );

if ( have_posts() ) {
  while ( have_posts() ) {
    the_post(); 

  } // end while
} // end if
注意底部的循环。您已将筛选器添加到the_content 但循环中没有任何内容可以应用该过滤器,甚至根本无法打印任何内容。您需要:

if ( have_posts() ) {
  while ( have_posts() ) {
    the_post(); 
    the_content(); // minimum
  } // end while
} // end if

结束

相关推荐

WordPress URLs without posts

我们正在开发基于WordPress的更大系统,但WordPress只用于“静态”内容,系统的主要部分应该是使用外部API和显示数据。我的观点是:我是否能够告诉URL重写不要对某些URL使用WordPress内部系统,而使用其他系统?E、 g。mysite.com/news/news-title 会显示帖子,但是mysite.com/customcontent/anotherlink 将调用某种机制从API加载数据并显示它。我不知道WordPress是否能做到这一点。。谢谢你的观点。