处理正面显示、正面显示、页面发布和模板层次结构

时间:2017-03-06 作者:Status4

由于某些原因,我需要覆盖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()在它之后不能正常工作。

1 个回复
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就行了。