There are very simple steps for Pagination for any type of Post in WordPress by Shortcode with Ajax.
- Write this below code in you active WordPress theme's funcntion.php file.
- ie: \wp-content\themes\twentytwenty\functions.php
- Put this shortcode in your page where you want to display WordPress Custome Post or Post with Ajax Pagination.
- <?php echo do_shortcode('[php_kishan_wp_portfolio_post_list per_page="30" total="90" post_type="post"]'); ?> OR
- [php_kishan_wp_portfolio_post_list per_page="30" total="90" post_type="post"]
### Code: ###
<?php
function function_php_kishan_wp_portfolio_post_list($atts, $content = null) {
ob_start();
$atts = shortcode_atts(
array(
'per_page' => '',
'total' => '',
'post_type' => '',
), $atts);
$per_page = $atts['per_page'] ? $atts['per_page'] : '9';
$total_post = $atts['total'] ? $atts['total'] : '-1';
$post_type = $atts['post_type'] ? $atts['post_type'] : 'post';
global $wpdb;
$post_type = $post_type; // define your custom post type slug here
// A sql query to return all post titles
$results = $wpdb->get_results("SELECT * FROM {$wpdb->posts} WHERE post_type = '$post_type' and post_status = 'publish' order by post_title ASC limit 0,$per_page");
.
.
.
.
return ob_get_clean();
}
add_shortcode('php_kishan_wp_portfolio_post_list', 'function_php_kishan_wp_portfolio_post_list');
#### [php_kishan_wp_portfolio_post_list per_page="30" total="90" post_type="post"] ####