我的 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/