php - 如何重写 WordPress 中的 get_post 函数?

标签 php mysql sql wordpress

我的 WordPress 中有这样的 URL http://www.example.com/wp-admin/post.php?post=87&action=edit&lang=de-DE 我需要重写从表 wp_posts 中按 ID 选择帖子的函数。我在 SQL 中有另一个表,由于 $_GET['lang'] 参数,我需要使用该表中的数据,因此我需要覆盖整个函数,而不仅仅是 WHERE 部分。

当我从表中选择正确的帖子时,我想使用默认模板。 是否可以从重写的函数返回数据并在默认 WordPress 模板中使用它们?

最佳答案

根据您尝试覆盖的功能,WordPress 确实支持该功能。您可以通过插件或通过functions.php文件来完成,具体取决于您希望实现的功能(根据您的问题很难确定)

以下是可插入函数的列表: http://codex.wordpress.org/Pluggable_Functions

这里是有关如何使用它们的教程: http://code.tutsplus.com/articles/understanding-wordpress-pluggable-functions-and-their-usage--wp-30189

在您发表评论后,我添加此附录:

在你的例子中,听起来好像你想在functions.php文件中使用add_query_vars,以便Wordpress知道该查询字符串(GET var)。然后,您可以使用 query_vars 属性来获取特定的 var (lang) 并使用它(与 get_results 一起)来查询您的自定义表。

在 function.php 中添加查询变量:

function add_query_vars($vars) {
    $vars[] = "lang";
    return $vars;
}

add_filter('query_vars', 'add_query_vars');

这是从模板文件或其他文件中的 URL 获取变量的方法:

$lang = get_query_var( 'lang' );

http://codex.wordpress.org/Function_Reference/get_query_var

然后,您只需使用在 get_results 自定义查询中检索到的信息到您的特定表...假设您的表具有正确的前缀等...

https://codex.wordpress.org/Class_Reference/wpdb#Using_the_.24wpdb_Object

关于php - 如何重写 WordPress 中的 get_post 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22816389/

相关文章:

mysql - 如何将以下 sql 查询转换为 HQL 查询

MySQL REGEXP NOT 组运算符

c# - sql连接字符串问题

sql - 有什么办法可以在 postgreSQL 中将假期与工作日分开吗?

mysql - SQL select语句比较格式化日期

MySQL 将列的值分组为单个单元格值

php - 具有非映射字段的 Symfony 3 唯一约束

php - 制作动态下拉导航系统

php - MYSQL 查询 - 在当前查询中包含我关注的人的帖子

PHP 在子文件夹中使用 spl_autoload_register 自动加载