title: Magento - How to hide products without images
body: <p>I need help with hiding Magento products with no images or display products with images first.</p>
  
  <p>I saw this $this->getLoadedProductCollection()->setOrder('image'/*or small_image*/, 'desc') in a response to another question to load all products with images first. But it didn't work for me.</p>
  
  <p>I am on Magento 1.6.2.</p>
  
  <p>Thanks in advance.</p>
  
  <p>Update: Please see my full list.phtml below. I  think I am doing something wrong. Thanks.</p>
  
  <pre><code>&lt;?php
  $_productCollection=$this-&gt;getLoadedProductCollection();
  $_productCollection-&gt;addAttributeToFilter('image', array('neq' =&gt; 'no_selection'));
  $_helper = $this-&gt;helper('catalog/output');
  $now = date("Y-m-d H:m:s");     
  
  ?&gt;
  &lt;?php if(!$_productCollection-&gt;count()): ?&gt;
  &lt;p class="note-msg"&gt;&lt;?php echo $this-&gt;__('There are no products matching the selection.') ?&gt;&lt;/p&gt;
  &lt;?php else: ?&gt;
  &lt;div class="category-products"&gt;
  &lt;?php echo $this-&gt;getToolbarHtml() ?&gt;
  &lt;?php // List mode ?&gt;
  &lt;?php if($this-&gt;getMode()!='grid'): ?&gt;
  &lt;?php $_iterator = 0; ?&gt;
  &lt;ol class="products-list" id="products-list"&gt;
  &lt;?php foreach ($_productCollection as $_product): ?&gt;
      &lt;li class="item&lt;?php if( ++$_iterator == sizeof($_productCollection) ): ?&gt; last&lt;?php endif; ?&gt;"&gt;
              &lt;?php $newFromDate = $_product-&gt;getNewsFromDate(); ?&gt;
              &lt;?php $newToDate = $_product-&gt;getNewsToDate(); ?&gt;                                               
              &lt;?php if($newFromDate &lt; $now &amp;&amp; $newToDate &gt; $now): ?&gt;
                      &lt;div class="newproduct_grid"&gt;&lt;?php echo $this-&gt;__('New Product') ?&gt;&lt;/div&gt;
              &lt;?php endif; ?&gt;     
          &lt;a href="&lt;?php echo $_product-&gt;getProductUrl() ?&gt;" title="&lt;?php echo $this-&gt;stripTags($this-&gt;getImageLabel($_product, 'small_image'), null, true) ?&gt;" class="product-image"&gt;&lt;img src="&lt;?php echo $this-&gt;helper('catalog/image')-&gt;init($_product, 'small_image')-&gt;resize(192); ?&gt;" width="192" alt="&lt;?php echo $this-&gt;stripTags($this-&gt;getImageLabel($_product, 'small_image'), null, true) ?&gt;" /&gt;&lt;/a&gt;
          &lt;?php // Product description ?&gt;
          &lt;div class="product-shop"&gt;
              &lt;div class="f-fix"&gt;
                  &lt;?php $_productNameStripped = $this-&gt;stripTags($_product-&gt;getName(), null, true); ?&gt;
                  &lt;h2 class="product-name"&gt;&lt;a href="&lt;?php echo $_product-&gt;getProductUrl() ?&gt;" title="&lt;?php echo $_productNameStripped; ?&gt;"&gt;&lt;?php echo $_helper-&gt;productAttribute($_product, $_product-&gt;getName() , 'name'); ?&gt;&lt;/a&gt;&lt;/h2&gt;
                  &lt;?php if($_product-&gt;getRatingSummary()): ?&gt;
                  &lt;?php echo $this-&gt;getReviewsSummaryHtml($_product) ?&gt;
                  &lt;?php endif; ?&gt;
                  &lt;div id="productimgover&lt;?php echo $_product-&gt;getId()?&gt;" style="display: none;"&gt;&lt;img src="&lt;?php echo $this-&gt;helper('catalog/image')-&gt;init($_product, 'small_image')-&gt;resize(64); ?&gt;" width="64" height="64" alt="&lt;?php echo $this-&gt;stripTags($this-&gt;getImageLabel($_product, 'small_image'), null, true) ?&gt;" /&gt;&lt;/div&gt;
                  &lt;div id='productname&lt;?php echo $_product-&gt;getId()?&gt;' style='display:none'&gt;&lt;?php echo $_helper-&gt;productAttribute($_product, $_product-&gt;getName(), 'name') ?&gt;&lt;/div&gt;
                  &lt;div class="desc std"&gt;
                      &lt;?php echo $_helper-&gt;productAttribute($_product, $_product-&gt;getShortDescription(), 'short_description') ?&gt;
                      &lt;a href="&lt;?php echo $_product-&gt;getProductUrl() ?&gt;" title="&lt;?php echo $_productNameStripped ?&gt;" class="link-learn"&gt;&lt;?php echo $this-&gt;__('Learn More') ?&gt;&lt;/a&gt;
                  &lt;/div&gt;
                  &lt;ul class="add-to-links"&gt;
                      &lt;?php if ($this-&gt;helper('wishlist')-&gt;isAllow()) : ?&gt;
                          &lt;li&gt;&lt;a href="&lt;?php echo $this-&gt;helper('wishlist')-&gt;getAddUrl($_product) ?&gt;" class="link-wishlist"&gt;&lt;?php echo $this-&gt;__('Add to Wishlist') ?&gt;&lt;/a&gt;&lt;/li&gt;
                      &lt;?php endif; ?&gt;
                      &lt;?php if($_compareUrl=$this-&gt;getAddToCompareUrl($_product)): ?&gt;
                          &lt;li&gt;&lt;span class="separator"&gt;|&lt;/span&gt; &lt;a href="&lt;?php echo $_compareUrl ?&gt;" class="link-compare"&gt;&lt;?php echo $this-&gt;__('Add to Compare') ?&gt;&lt;/a&gt;&lt;/li&gt;
                      &lt;?php endif; ?&gt;
                  &lt;/ul&gt;
              &lt;/div&gt;
              &lt;div style="clear: both;"&gt;&lt;/div&gt;
          &lt;/div&gt;
          &lt;div class="addtocont"&gt;
              &lt;?php echo $this-&gt;getPriceHtml($_product, true) ?&gt;
              &lt;?php if($_product-&gt;isInStock()): ?&gt;
                                      &lt;?php if ( !($_product-&gt;getTypeInstance(true)-&gt;hasRequiredOptions($_product) || $_product-&gt;isGrouped()) ) { ?&gt;
                              &lt;p&gt;&lt;button type="button" title="&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;" class="button btn-cart" onclick="setLocationAjax('&lt;?php echo $this-&gt;getAddToCartUrl($_product) ?&gt;','&lt;?php echo $_product-&gt;getId()?&gt;')"&gt;&lt;span&gt;&lt;span&gt;&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/p&gt;
  
                          &lt;?php } else { ?&gt;
                              &lt;button type="button" title="&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;" class="button btn-cart" onclick="showOptions('&lt;?php echo $_product-&gt;getId()?&gt;')"&gt;&lt;span&gt;&lt;span&gt;&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;
                              &lt;a href='&lt;?php echo $this-&gt;getUrl('ajax/index/options',array('product_id'=&gt;$_product-&gt;getId()));?&gt;' class='fancybox' id='fancybox&lt;?php echo $_product-&gt;getId()?&gt;' style="display: none;" &gt;&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;&lt;/a&gt;
                          &lt;?php }  ?&gt;
              &lt;?php else: ?&gt;
              &lt;p class="availability out-of-stock"&gt;&lt;span&gt;&lt;?php echo $this-&gt;__('Out of stock') ?&gt;&lt;/span&gt;&lt;/p&gt;
              &lt;?php endif; ?&gt;            
          &lt;/div&gt;
      &lt;/li&gt;
  &lt;?php endforeach; ?&gt;
  &lt;/ol&gt;
  &lt;script type="text/javascript"&gt;decorateList('products-list', 'none-recursive')&lt;/script&gt;
  
  &lt;?php else: ?&gt;
  
  &lt;?php // Grid Mode ?&gt;
  
  &lt;?php $_collectionSize = $_productCollection-&gt;count() ?&gt;
  &lt;?php $_columnCount = $this-&gt;getColumnCount(); ?&gt;
  &lt;?php $i=0; foreach ($_productCollection as $_product): ?&gt;
      &lt;?php if ($i++%$_columnCount==0): ?&gt;
      &lt;ul class="products-grid"&gt;
      &lt;?php endif ?&gt;
          &lt;li class="item&lt;?php if(($i-1)%$_columnCount==0): ?&gt; first&lt;?php elseif($i%$_columnCount==0): ?&gt; last&lt;?php endif; ?&gt;"&gt;
              &lt;?php if($_product-&gt;getRatingSummary()): ?&gt;
                  &lt;?php echo $this-&gt;getReviewsSummaryHtml($_product, 'short') ?&gt;
              &lt;?php endif; ?&gt;
              &lt;?php $newFromDate = $_product-&gt;getNewsFromDate(); ?&gt;
              &lt;?php $newToDate = $_product-&gt;getNewsToDate(); ?&gt;                                               
              &lt;?php if($newFromDate &lt; $now &amp;&amp; $newToDate &gt; $now): ?&gt;
                      &lt;div class="newproduct_grid"&gt;&lt;?php echo $this-&gt;__('New Product') ?&gt;&lt;/div&gt;
              &lt;?php endif; ?&gt;
              &lt;a href="&lt;?php echo $_product-&gt;getProductUrl() ?&gt;" title="&lt;?php echo $this-&gt;stripTags($this-&gt;getImageLabel($_product, 'small_image'), null, true) ?&gt;" class="product-image"&gt;&lt;img src="&lt;?php echo $this-&gt;helper('catalog/image')-&gt;init($_product, 'small_image')-&gt;resize(220); ?&gt;" width="220" height="220" alt="&lt;?php echo $this-&gt;stripTags($this-&gt;getImageLabel($_product, 'small_image'), null, true) ?&gt;" /&gt;&lt;/a&gt;
              &lt;div id="productimgover&lt;?php echo $_product-&gt;getId()?&gt;" style="display: none;"&gt;&lt;img src="&lt;?php echo $this-&gt;helper('catalog/image')-&gt;init($_product, 'small_image')-&gt;resize(64); ?&gt;" width="64" height="64" alt="&lt;?php echo $this-&gt;stripTags($this-&gt;getImageLabel($_product, 'small_image'), null, true) ?&gt;" /&gt;&lt;/div&gt;
              &lt;div class="moreinfo"&gt;
                  &lt;h2 class="product-name"&gt;&lt;a href="&lt;?php echo $_product-&gt;getProductUrl() ?&gt;" title="&lt;?php echo $this-&gt;stripTags($_product-&gt;getName(), null, true) ?&gt;"&gt;&lt;?php echo $_helper-&gt;productAttribute($_product, $_product-&gt;getName(), 'name') ?&gt;&lt;/a&gt;&lt;/h2&gt;
                  &lt;div id='productname&lt;?php echo $_product-&gt;getId()?&gt;' style='display:none'&gt;&lt;?php echo $_helper-&gt;productAttribute($_product, $_product-&gt;getName(), 'name') ?&gt;&lt;/div&gt;
                  &lt;?php echo $this-&gt;getPriceHtml($_product, true) ?&gt;
                      &lt;?php if($_product-&gt;isInStock()): ?&gt;
                          &lt;?php if ( !($_product-&gt;getTypeInstance(true)-&gt;hasRequiredOptions($_product) || $_product-&gt;isGrouped()) ) { ?&gt;
                              &lt;p&gt;&lt;button type="button" title="&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;" class="button btn-cart" onclick="setLocationAjax('&lt;?php echo $this-&gt;getAddToCartUrl($_product) ?&gt;','&lt;?php echo $_product-&gt;getId()?&gt;')"&gt;&lt;span&gt;&lt;span&gt;&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;&lt;/p&gt;
  
                          &lt;?php } else { ?&gt;
                              &lt;button type="button" title="&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;" class="button btn-cart" onclick="showOptions('&lt;?php echo $_product-&gt;getId()?&gt;')"&gt;&lt;span&gt;&lt;span&gt;&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;&lt;/span&gt;&lt;/span&gt;&lt;/button&gt;
                              &lt;a href='&lt;?php echo $this-&gt;getUrl('ajax/index/options',array('product_id'=&gt;$_product-&gt;getId()));?&gt;' class='fancybox' id='fancybox&lt;?php echo $_product-&gt;getId()?&gt;' style="display: none;" &gt;&lt;?php echo $this-&gt;__('Add to Cart') ?&gt;&lt;/a&gt;
                          &lt;?php }  ?&gt;
                      &lt;?php else: ?&gt;
                          &lt;p class="availability out-of-stock"&gt;&lt;span&gt;&lt;?php echo $this-&gt;__('Out of stock') ?&gt;&lt;/span&gt;&lt;/p&gt;
                      &lt;?php endif; ?&gt;
                      &lt;div class="clear"&gt;&lt;/div&gt;
                      &lt;ul class="add-to-links"&gt;
                          &lt;?php if ($this-&gt;helper('wishlist')-&gt;isAllow()) : ?&gt;
                              &lt;li&gt;&lt;a href="&lt;?php echo $this-&gt;helper('wishlist')-&gt;getAddUrl($_product) ?&gt;" class="link-wishlist"&gt;&lt;?php echo $this-&gt;__('Add to Wishlist') ?&gt;&lt;/a&gt;&lt;/li&gt;
                          &lt;?php endif; ?&gt;
                          &lt;?php if($_compareUrl=$this-&gt;getAddToCompareUrl($_product)): ?&gt;
                              &lt;li&gt;&lt;span class="separator"&gt;|&lt;/span&gt; &lt;a href="&lt;?php echo $_compareUrl ?&gt;" class="link-compare"&gt;&lt;?php echo $this-&gt;__('Add to Compare') ?&gt;&lt;/a&gt;&lt;/li&gt;
                          &lt;?php endif; ?&gt;
                      &lt;/ul&gt;
                      &lt;div class="clear"&gt;&lt;/div&gt;
              &lt;/div&gt;
          &lt;/li&gt;
      &lt;?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?&gt;
      &lt;/ul&gt;
      &lt;?php endif ?&gt;
      &lt;?php endforeach ?&gt;
      &lt;script type="text/javascript"&gt;decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])&lt;/script&gt;
  
  &lt;?php endif; ?&gt;
      &lt;script type="text/javascript"&gt;
      jQuery.noConflict();
      jQuery('.fancybox').fancybox({
          hideOnContentClick : true,
          width: 582,
          autoDimensions: true,
          type : 'iframe',
          showTitle: false,
          scrolling: 'no',
          onComplete: function(){ //Resize the iframe to correct size
          jQuery('#fancybox-frame').load(function() { // wait for frame to load and then gets it's height
              jQuery('#fancybox-content').height(jQuery(this).contents().find('body').height()+30);
              jQuery.fancybox.resize();
           });
  
          }
      });        
      function showOptions(id){
          jQuery('#fancybox'+id).trigger('click');
      }
      function setAjaxData(data,iframe){
          if(data.status == 'ERROR'){
              alert(data.message);
          }else{
              if(jQuery('.block-cart')){
                  jQuery('.block-cart').replaceWith(data.sidebar);
              }
              if(jQuery('.header .block-cart-header')){
                  jQuery('.header .block-cart-header').replaceWith(data.topcart);
              } 
              jQuery.fancybox.close();
          }
      }
      function setLocationAjax(url,id){
          url += 'isAjax/1';
          url = url.replace("checkout/cart","ajax/index");
          var msgHtml;
          var productImg = jQuery('#productimgover' + id).html();
          var windowOver = jQuery('#addedoverlay');
          var windowBox = jQuery('#added');
          var titleForBox = jQuery('#productname' + id).text();
          windowOver.show();
          windowBox.show().css({
              backgroundImage: "url('&lt;?php echo $this-&gt;getSkinUrl('images/loading.gif')?&gt;')"
          });
          try {
              jQuery.ajax( {
                  url : url,
                  dataType : 'json',
                  success : function(data) {
                      if(data.status == 'SUCCESS'){    
                          msgHtml = '&lt;div style="float:left;"&gt;' + productImg + '&lt;/div&gt;&lt;em&gt;' + titleForBox + '&lt;/em&gt; &lt;?php echo $this-&gt;__('was successfully added to your shopping cart.') ?&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;a id="hidewindow" href="javascript:void(0);"&gt;&lt;?php echo $this-&gt;__('Continue shopping') ?&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="&lt;?php echo $this-&gt;getUrl('checkout/cart')?&gt;"&gt;&lt;?php echo $this-&gt;__('View cart &amp; checkout') ?&gt;&lt;/a&gt;';             
                      }else{
                          msgHtml = '&lt;p class="error-msg" style="margin-bottom:15px;"&gt;' + data.message + '&lt;/p&gt;&lt;a id="hidewindow" href="javascript:void(0);"&gt;&lt;?php echo $this-&gt;__('Continue shopping') ?&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="&lt;?php echo $this-&gt;getUrl('checkout/cart')?&gt;"&gt;&lt;?php echo $this-&gt;__('View cart &amp; checkout') ?&gt;&lt;/a&gt;';
                      }            
                      setAjaxData(data,false);
  
                      windowBox.css({
                            backgroundImage: 'none'
                      }).html(msgHtml);                      
                      windowOver.one('click',function(){
                          hidewindow(windowBox,windowOver);                    
                      });        
  
                      jQuery('#hidewindow').click(function(){
                          hidewindow(windowBox,windowOver);                    
                      });                        
                  }
              });
          } catch (e) {
          }
      }
      function hidewindow(windowBox,windowOver){
          windowOver.fadeOut(400);
          windowBox.fadeOut(400).html('');    
      }        
      &lt;/script&gt;
  &lt;div class="toolbar-bottom"&gt;
      &lt;?php echo $this-&gt;getToolbarHtml() ?&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p></p>