How to Change URL Prefix For Custom Post Types in WordPress

While developing our own website with WordPress I came across one issue with URL structure of blog and portfolio pages. I needed to have blog post URL to be axiswebart.com/blog/posturl. To achieve this I used WordPress permalinks settings and added a URL prefix using custom permalinks options as blog/%postname%/

This solved one problem with blog URL and created another one. Now all our portfolio pages also started to have this URL prefix and all url portfolio URL started to have two url prefix with a structure like axiswebart.com/blog/portfolio/portfolioitmeurl

We don’t wanted to have this kind of structure at all. After searching around the internet I came across below solution to fix the problem –

We have registered a custom post type for our portfolio and I added below line of code in the post type register function of the plugin.

'rewrite' => array(
'with_front' => false,
'slug'       => 'portfolio'
)

Hope this helps anyone looking for a solution to problem like this with custom post type. Even if your URL don’t work after adding this code, make sure you refresh your rewrite rules stored in the wp_options table. To refresh that try saving your permalinks settings to default once and than reset it back to your original settings. It will regenerate all rewrite rule and your custom post type URL will start working as per your settings.

Delete magento test orders

To delete magento test orders you can use this SQL script.

While going live with your magento development, you might want to clean your test orders to start a fresh. One of the easier way of doing it is running some direct mysql queries to the database.

Goto phpmyadmin and run this script:-

    SET FOREIGN_KEY_CHECKS=0;
    TRUNCATE `sales_flat_creditmemo`;
    TRUNCATE `sales_flat_creditmemo_comment`;
    TRUNCATE `sales_flat_creditmemo_grid`;
    TRUNCATE `sales_flat_creditmemo_item`;
    TRUNCATE `sales_flat_invoice`;
    TRUNCATE `sales_flat_invoice_comment`;
    TRUNCATE `sales_flat_invoice_grid`;
    TRUNCATE `sales_flat_invoice_item`;
    TRUNCATE `sales_flat_order`;
    TRUNCATE `sales_flat_order_address`;
    TRUNCATE `sales_flat_order_grid`;
    TRUNCATE `sales_flat_order_item`;
    TRUNCATE `sales_flat_order_payment`;
    TRUNCATE `sales_flat_order_status_history`;
    TRUNCATE `sales_flat_quote`;
    TRUNCATE `sales_flat_quote_address`;
    TRUNCATE `sales_flat_quote_address_item`;
    TRUNCATE `sales_flat_quote_item`;
    TRUNCATE `sales_flat_quote_item_option`;
    TRUNCATE `sales_flat_quote_payment`;
    TRUNCATE `sales_flat_quote_shipping_rate`;
    TRUNCATE `sales_flat_shipment`;
    TRUNCATE `sales_flat_shipment_comment`;
    TRUNCATE `sales_flat_shipment_grid`;
    TRUNCATE `sales_flat_shipment_item`;
    TRUNCATE `sales_flat_shipment_track`;
    TRUNCATE `sales_invoiced_aggregated`;
    TRUNCATE `sales_invoiced_aggregated_order`;
    TRUNCATE `sales_order_aggregated_created`;
    TRUNCATE `sendfriend_log`;
    TRUNCATE `tag`;
    TRUNCATE `tag_relation`;
    TRUNCATE `tag_summary`;
    TRUNCATE `wishlist`;
    TRUNCATE `log_quote`;
    TRUNCATE `report_event`;
    ALTER TABLE `sales_flat_creditmemo` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_creditmemo_comment` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_creditmemo_grid` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_creditmemo_item` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_invoice_comment` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_order` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_quote_payment` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_quote_shipping_rate` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_shipment_comment` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=1;
    ALTER TABLE `sales_flat_shipment_track` AUTO_INCREMENT=1;
    ALTER TABLE `sales_invoiced_aggregated` AUTO_INCREMENT=1;
    ALTER TABLE `sales_invoiced_aggregated_order` AUTO_INCREMENT=1;
    ALTER TABLE `sales_order_aggregated_created` AUTO_INCREMENT=1;
    ALTER TABLE `sendfriend_log` AUTO_INCREMENT=1;
    ALTER TABLE `tag` AUTO_INCREMENT=1;
    ALTER TABLE `tag_relation` AUTO_INCREMENT=1;
    ALTER TABLE `tag_summary` AUTO_INCREMENT=1;
    ALTER TABLE `wishlist` AUTO_INCREMENT=1;
    ALTER TABLE `log_quote` AUTO_INCREMENT=1;
    ALTER TABLE `report_event` AUTO_INCREMENT=1;
    SET FOREIGN_KEY_CHECKS=1; 

That’s all, now your magento is ready to start taking real orders.

Setting SMTP For Magento

Here are the complete steps to Setting SMTP for magento:-

  1. Login to magento admin and go to System -> configuration ->advanced -> system ->mail sending settings.
  2. Here insert your SMTP setting like your SMTP server name and SMTP port etc. (default port is 25).
  3. Enable email communications.
  4. Overrirde your Template model located at (app/code/core/Mage/core/Model/Email/Template.php).
  5. To override template model you can copy this Template.php file in your local directory with same directory structure.
  6. And change this model getMail() method like this:-

 

public function getMail()
{
      if (is_null($this->mail))
      {
		$my_smtp_host = Mage::getStoreConfig('system/smtp/host');
          	$my_smtp_port = Mage::getStoreConfig('system/smtp/port');
		$config = array('port' => $my_smtp_port, 'auth' => 'login',
                'username' => 'youremailname@yourdomainname.com', 'password' => 'yourpassword');
                $transport = new Zend_Mail_Transport_Smtp($my_smtp_host, $config);
                Zend_Mail::setDefaultTransport($transport);
                $this->mail = new Zend_Mail('utf-8');
       }
       return $this->mail;   
} 

That’s all required to setup SMTP in magento. During our Magento development project we face problem with order and other email alerts. Many time its due to issues with php mail services on the server. Setting up SMTP to send email can resolve such issues.

Show Different Posts Per Page/category in WordPress Website

Many times you need to show different number of post per category page in WordPress. Use below code snippet do that.

Code For Show Different Posts Per Page.

Add this code in function.php of your theme

function five_posts_on_homepage( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'posts_per_page', 5 );
    }
}
add_action( 'pre_get_posts', 'five_posts_on_homepage' );

Categories

Looking to Get Started?

We have an online project planner that is the most simpler way to
get your project started. Start a Project