繁体   English   中英

如何在WordPress中覆盖get_post函数?

[英]How to override get_post function in WordPress?

我在我的WordPress http://www.example.com/wp-admin/post.php?post=87&action=edit&lang=de-DE中有这样的URL,我需要覆盖从表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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM