我的自定义“主页”页面设置为通过自定义日期字段对我的自定义帖子进行排序,并使用functions.php中的以下代码(已更新为自定义名称):
// sort order for home page
add_action('wp', 'wwgo_check_page');
function wwgo_check_page () {
if (is_page()) {
add_filter('get_previous_post_sort', 'sort_it');
add_filter('get_next_post_sort', 'sort_it');
add_filter('posts_orderby', 'sort_it' );
add_filter('posts_join', 'join_it' );
add_filter('posts_where', 'where_it' );
function sort_it () {
global $wpdb;
return " $wpdb->postmeta.meta_value ASC ";
}
function join_it( $join ) {
global $wpdb;
$join .= " LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id) ";
return $join;
}
function where_it( $where ) {
global $wpdb;
$where .= "AND $wpdb->postmeta.meta_key = 'deadline' ";
return $where;
}
}
}
这是花花公子和简单。现在。我希望它能在整个网站上正常工作。我希望存档页面,类别等上的帖子首先按自定义日期字段排序。
有任何想法吗?
我尝试将' if
' 更改为,is_archive()
但这没有任何效果。我也尝试<! is_single()>
过
我敢肯定这应该很简单。但是我是php的新手,因此一无所知。
这是该站点,您可以在其中看到主页的排序很好,但是如果单击“诗歌”(仅有几篇文章的人),则无法进行排序。
任何建议都会很高兴地得到满足。
非常感谢你。
您是说这是好的做法还是要解决这个问题?我试图复制代码,再为“is_archive”,它的确让我再次调用该函数,但排序没有工作......
—
约什-
是的,这是个好习惯。加:您不应该将函数包装在函数中。
—
kaiser
很酷,很酷(我只是从网站tbh复制了代码。我是php和wordpress的新手)。关于如何使其在整个网站上正常工作的任何进展?我可以在更多自定义页面和设置为(is_page())的相同功能下使用它,但这仍然对我的存档页面不起作用。我不知道如何解决这些问题?
—
乔希
不要将函数放入函数中,而应尝试使用类。
—
曼妮·弗勒蒙德
josh_
避免命名细菌。