WP:可以修改is_front_page() 和is_home() 函数吗
WP: is it ok to modify is_front_page() and is_home() functions
我已经将我的网站分为女性和男性显示,现在我担心 is_front_page()
和 is_home()
功能。
在这个改变之前我只有www.site.com
是首页,现在我还有www.site.com/men
和www.site.com/women
,我希望它们也被识别为首页.
我考虑过制作一个新的 class My_Query extends WP_Query
并覆盖这些功能。
这是个坏主意吗?有没有更好的方法?
实现继承自 WP_Query
的 class
是个好主意,但我相信您仍然应该在需要时支持旧功能,即使您这样做了这一刻看不到这样的场景。你应该有这样的东西:
class My_Query extends WP_Query {
//...
public function is_home($default = true) {
if ($default) {
return parent::is_home();
} else {
//Implement your custom case
}
}
public function is_front_page($default = true) {
if ($default) {
return parent::is_front_page();
} else {
//Implement your custom case
}
}
//...
}
如果更适合您的需要,您可以将 false
作为默认值 $default
。这种方法也将与未来的 Wordpress 版本兼容,至少当您以默认方式使用它时。
我已经将我的网站分为女性和男性显示,现在我担心 is_front_page()
和 is_home()
功能。
在这个改变之前我只有www.site.com
是首页,现在我还有www.site.com/men
和www.site.com/women
,我希望它们也被识别为首页.
我考虑过制作一个新的 class My_Query extends WP_Query
并覆盖这些功能。
这是个坏主意吗?有没有更好的方法?
实现继承自 WP_Query
的 class
是个好主意,但我相信您仍然应该在需要时支持旧功能,即使您这样做了这一刻看不到这样的场景。你应该有这样的东西:
class My_Query extends WP_Query {
//...
public function is_home($default = true) {
if ($default) {
return parent::is_home();
} else {
//Implement your custom case
}
}
public function is_front_page($default = true) {
if ($default) {
return parent::is_front_page();
} else {
//Implement your custom case
}
}
//...
}
如果更适合您的需要,您可以将 false
作为默认值 $default
。这种方法也将与未来的 Wordpress 版本兼容,至少当您以默认方式使用它时。