Replies: 6 comments
-
The output of HTML elements with the Pods pagination templates is fixed. More info from WP: |
Beta Was this translation helpful? Give feedback.
-
Thank you for the answer. I did as you suggested. |
Beta Was this translation helpful? Give feedback.
-
You can filter specific pagination types with the https://github.com/pods-framework/pods/blob/2.x/classes/Pods.php#L3122 We intend on allowing custom pagination types in the future which point to template files in your theme. For now, make use of that filter above. |
Beta Was this translation helpful? Give feedback.
-
/**
* Custom filter to replace advanced pagination with custom HTML
*
* @param string $output Pagination output
* @param array $params Pagination params from Pods::pagination()
* @param Pods $pods Pods object
*
* @return string
*/
function my_pods_pagination_advanced( $output, $params, $pods ) {
// Build your own pagination output here
$output = '<your html here>';
return $output;
}
add_filter( 'pods_pods_pagination_advanced', 'my_pods_pagination_advanced', 10, 2 ); |
Beta Was this translation helpful? Give feedback.
-
removing $pods argument helped me. With $pods parameter, I had the following error "Warning: Missing argument 3 for my_pods_pagination_advanced() in D:...\functions.php on line N" |
Beta Was this translation helpful? Give feedback.
-
Maybe my ugly code can help somebody function my_pods_pagination_advanced( $output, $params ) {
$url = str_replace( "%_%", $params->page_var . "=", $params->base );
$page_number = $params->total;
if ( $page_number <= 1 ) {
return null;
}
$current_page = $params->page;
$left_number = $middle_number = $right_number = 0;
if ( $current_page == $page_number ) {
$right_number = $page_number;
$middle_number = $right_number - 1;
$left_number = $right_number - 2;
} elseif ( $current_page == 1 ) {
$left_number = 1;
$middle_number = $left_number + 1;
$right_number = $left_number + 2;
} else {
$middle_number = $current_page;
$left_number = $middle_number - 1;
$right_number = $middle_number + 1;
}
$output = '<div class="navigation"><div class="navigation_in">';
if ( $current_page == $page_number ) {
// right number selected
$output .= '<a class="navig_arrow navig_back_double" href="' . $url . '1' . '"></a>';
$output .= '<a class="navig_arrow navig_back" href="' . $url . $middle_number . '"></a>';
if ( $left_number > 0 ) {
$output .= '<a href="' . $url . $left_number . '">' . $left_number . '</a>';
}
if ( $middle_number > 0 ) {
$output .= '<a href="' . $url . $middle_number . '">' . $middle_number . '</a>';
}
$output .= '<span>' . $right_number . '</span>';
} elseif ( $current_page == 1 ) {
// left number selected
$output .= '<span>' . $left_number . '</span>';
$output .= '<a href="' . $url . $middle_number . '">' . $middle_number . '</a>';
if ( $right_number <= $page_number ) {
$output .= '<a href="' . $url . $right_number . '">' . $right_number . '</a>';
}
$output .= '<a class="navig_arrow navig_forward" href="' . $url . $middle_number . '"></a>';
$output .= '<a class="navig_arrow navig_forward_double" href="' . $url . $page_number . '"></a>';
} else {
// middle number selected
$output .= '<a class="navig_arrow navig_back_double" href="' . $url . '1' . '"></a>';
$output .= '<a class="navig_arrow navig_back" href="' . $url . $left_number . '"></a>';
$output .= '<a href="' . $url . $left_number . '">' . $left_number . '</a>';
$output .= '<span>' . $middle_number . '</span>';
$output .= '<a href="' . $url . $right_number . '">' . $right_number . '</a>';
$output .= '<a class="navig_arrow navig_forward" href="' . $url . $right_number . '"></a>';
$output .= '<a class="navig_arrow navig_forward_double" href="' . $url . $page_number . '"></a>';
}
$output .= '</div></div>';
return $output;
}
add_filter( 'pods_pods_pagination_advanced', 'my_pods_pagination_advanced', 10, 2 ); |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Right now I'm doing the following to get the pagination echo'd to the page
echo $trend->pagination( array( 'type' => 'advanced', 'first_last' => false, 'prev_text' => '<<', 'next_text' => '>>') );
And that works great and spits out:
<span class="pods-pagination-number pods-pagination-current ">2</span> <a href="/whatstrending/?pg=3&page_id=whatstrending/" class="pods-pagination-number pods-pagination-last ">3</a> <a href="/whatstrending/?pg=3&page_id=whatstrending/" class="pods-pagination-number pods-pagination-next ">>></a> </span>
However, I want to have it spit out the following:
<nav> <ul class="pagination"> <li><a href="/whatstrending/?pg=1&page_id=whatstrending/">«</a></li> <li><a href="/whatstrending/?pg=1&page_id=whatstrending/"></a></li> <li>2</li> <li><a href="/whatstrending/?pg=3&page_id=whatstrending/"></a></li> <li><a href="/whatstrending/?pg=3&page_id=whatstrending/">»</a></li> </ul> </nav>
The documentation implies that I can overwrite the default output of the pagination elements, but doesn't give me enough to go on to figure it out. I would very much appreciate any help that can be given!
Beta Was this translation helpful? Give feedback.
All reactions