gpt4 book ai didi

wordpress - 列出 Wordpress 中的自定义数据

转载 作者:行者123 更新时间:2023-12-04 05:29:00 25 4
gpt4 key购买 nike

我正在开发一个插件,它有自己的表。我需要在 Wordpress 前端(例如:类别页面)中显示表格中的数据。我不需要用posts 表JOIN 这个表,我只需要显示表中的数据,带分页。我需要一个来自我的插件目录的单独页面/自定义模板(在 MVC 框架的上下文中讨论 - Controller ),应在其上显示和分页此数据。

请给我一个建议,实现它的最佳实践是什么?

谢谢。

最佳答案

如果我理解您的问题,那么我认为您需要添加 template_include Hook 以使用插件目录中的自定义模板/页面,您可以这样做

add_filter('template_include', 'my_template', 1, 1); 
function my_template($template) {
global $post;
if($post->post_content == '[myPluginPage]')
return dirname(__FILE__) . '/my_pligin_template.php';
return $template;
}

您应该将上面给出的代码粘贴到您的插件文件中,并在您的插件文件夹中创建一个名为 my_pligin_template.php 的文件。或者任何你想要的,但在这种情况下,在第一个 return 语句中,你也必须更改文件名。

现在您必须在 wordpress admin 中创建一个页面以在菜单栏中显示该页面并粘贴 [myPluginPage]作为内容。通知 if($post->post_content == '[myPluginPage]') ,这将在您单击任何菜单项时检查它是否是您的插件页面,并且它是否找到单词 [myPluginPage]在内容中,它将返回自定义模板,您将在该页面上。

现在,您需要从数据库中获取数据,为此您应该在此自定义模板文件 (my_pligin_template.php) 中编写代码。要做到这一点,你可以写
global $wpdb;
$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
$limit = 10;
$offset = ($pagenum-1) * $limit;
$total = $wpdb->get_var( "SELECT COUNT(*) FROM yourtable" );
$num_of_pages = ceil( $total / $limit );

$qry="select * from yourtable LIMIT $offset, $limit";
$result=$wpdb->get_results($qry);
if($result):
foreach($result as $row)
{
// code here
}

//Link for Pagination
$page_links = paginate_links( array(
'base' => add_query_arg( 'pagenum', '%#%' ),
'format' => '',
'prev_text' => __( '«', 'aag' ),
'next_text' => __( '»', 'aag' ),
'total' => $num_of_pages,
'current' => $pagenum
) );
if ( $page_links ) {
echo '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></div>';
}
endif;

关于wordpress - 列出 Wordpress 中的自定义数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12868475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com