由于某些原因,我需要覆盖show\\u on\\u front、page\\u on\\u front、page\\u for\\u posts选项值。我正在将show\\u on\\u front设置为“page”,将另一个设置为两个不同的页面id。如果我将“管理”>“设置”>“阅读”面板中的这些设置更改为与编程方式相同的值,则首页将加载首页。php模板。否则,首页将加载页面。php模板。我做错了什么?
add_filter(\'pre_option_show_on_front\', \'static_front_page\');
function static_front_page() {
return \'page\';
}
add_filter(\'pre_option_page_on_front\', \'page_on_front\');
function page_on_front() {
return 123;
}
add_filter(\'pre_option_page_for_posts\', \'page_for_posts\');
function page_for_posts() {
return 123;
}
我知道这不是最好的做法,但我很乐意这样做。
当设置每个过滤器时,另一个问题是\\u front\\u page()在它之后不能正常工作。
SO网友:Status4
好了,开始工作了。我在过滤器的回调中返回序列化选项的属性:
add_filter(\'pre_option_page_on_front\', \'page_on_front\');
function page_on_front() {
$options = get_option(\'theme_options\');
return $options[\'page_on_front\'];
}
add_filter(\'pre_option_page_for_posts\', \'page_for_posts\');
function page_for_posts() {
$options = get_option(\'theme_options\');
return $options[\'page_for_posts\'];
}
returend值是数字,但不是字符串。把它们打成int就行了。