Ich hoffe, Sie können mir helfen, herauszufinden, warum ich get_first_post_in_category nicht erfolgreich eine nutzbare Beitrags-ID zurückgeben kann. Im Moment verwende ich die Wordpress Plugin Boilerplate, um ein Plugin zu erstellen, das den ersten Post einer bestimmten Kategorie (über die Admin-Optionen-Seite) aus der primären Schleife entfernt. Alles ist gut, bis ich versuche, die Post-ID programmatisch abzurufen.WordPress Custom Function in Plugin zur Rücksendung Beitrags-ID aus der angegebenen Kategorie
Hier habe ich meine Haken definieren (funktioniert):
// In private function define_public_hooks()
$this->loader->add_action('pre_get_posts', $plugin_public, 'exclude_featured_post_pre_injection');
Hier ist die Callback-Funktion ich eine bestimmte Stelle aus der Hauptabfrage auszuschließen verwende. Wenn $ first_post_in_category_id manuell festgelegt wird, funktioniert es einwandfrei. Wenn ich versuche, es auf "= get_first_post_in_category();" Ich bekomme einen 500 Fehler.
public function exclude_featured_post_pre_injection($query){
// Doesn't work
$first_post_in_category_id = $this->get_first_post_in_category();
//Works
// $first_post_in_category_id = '427';
if ($query->is_home() && $query->is_main_query()) {
$query->set('post__not_in', array($first_post_in_category_id));
}
}
Und hier ist das Problem ::: diese Funktion, die ich versucht bin, nur die ID des ersten Beitrags in der Kategorie zurückzukehren in anderen Aktion/Filter-Rückrufen verwendet werden. Wenn ich das anrufe, gibt es einen Fehler von 500 zurück.
public function get_first_post_in_category(){
$cat_id = get_option('sticky_content_category_id');
// currently returns (string) '3' which has posts in it
$args = array(
'posts_per_page' => 1,
'cat' => $cat_id
);
$latest_cat_post = new WP_Query($args);
while ($latest_cat_post->have_posts()) : $latest_cat_post->the_post();
$first_post_id = the_ID();
endwhile;
wp_reset_postdata();
return $first_post_id;
}
Irgendeine Idee auf dem besten Weg, um die Probleme zu lösen, in denen ich laufe?