add_filter(to posts_where)回调函数没有调用

时间:2016-03-19 05:09:10

标签: wordpress

我在我的WordPress根文件夹中创建了一个文件(test.php),并将其与WordPress分开加载,如http://localhost/MyWP_Website/test.php 这是我的代码:

<?php
require_once("wp-config.php");
require_once("wp-includes/wp-db.php");
function myFilter001($where = '') {
    GLOBAL $wpdb;
    $where .= " AND ".$wpdb->posts.".ID > 20 ";
    return $where;
}
add_filter('posts_where', 'myFilter001');
$args = array(
    'posts_per_page'    => $total,
    'category'          => $category,
    'author'            => $author,
    's'                 => $search,
    'offset'            => 0,
    'orderby'           => 'ID',
    'order'             => 'DESC',
);
$posts = get_posts( $args );
?>

我搜索并发现我的功能不公开,但如何将其公开?这是我的主要代码和我唯一需要的文件吗?!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案!

通过使用WP_Query()而不是get_posts(),添加到posts_where的所有过滤器都可以正常工作,我只是替换了代码的最后一行。

替换它:

$posts = get_posts( $args );

对此:

$query = new WP_Query( $args );