2016-03-19 13 views
-1

ich eine Datei (test.php) in meinem Wordpress-Stammordner aus, und laden Sie diese getrennt von Wordpress wie diese http://localhost/MyWP_Website/test.php sind hier mein Code:add_filter (bis posts_where) Callback-Funktion nicht ruft

<?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); 
?> 

Ich habe gesucht und festgestellt, dass meine Funktion nicht öffentlich ist, sondern wie man sie öffentlich macht. es ist mit meinem Hauptcode und in meiner einzigen Datei, die ich brauche ?!

+0

Was meinst du mit 'meine Funktion nicht öffentlich ist'? –

+0

Warum versuchen Sie, diesen Code auf diese Weise zu laden? Ich würde vorschlagen, Best Practices zu verwenden und willkürlichen Code in ein Plugin anstelle des Root-Verzeichnisses zu stecken! –

+0

@JimMaguire Ich meine, meine Filterfunktion (myFilter001), die ich in meinem Code gemacht habe. Weil es nie ruft! – Reza

Antwort

0

Ich fand die Lösung!

Durch die Verwendung von WP_Query() anstelle von get_posts() alle Filter, die zu posts_where hinzugefügt werden, funktionierte, ich habe gerade die letzte Zeile meines Codes ersetzt.

diese ersetzen:

$posts = get_posts($args); 

Um dies:

$query = new WP_Query($args); 
Verwandte Themen