Problem beim Aufrufen der benutzerdefinierten function in einer foreach-Schleife

Ich habe eine benutzerdefinierte function in functions.php, die bestimmte Kategorie aus der Kategorieliste ausschließt:

function incomplete_cat_list() { $first_time = 1; foreach((get_the_category()) as $category) { if ($category->cat_name != 'Category Name') { if ($first_time == 1) { echo 'term_id ) . '" title="' . sprintf( __( "See all %s" ), $category->name ) . '" ' . '>' . $category->name.''; $first_time = 0; } else { } } } } 

Ich möchte es in verwandten Posts foreach Schleife verwenden, aber ich bin mir nicht sicher, wie es geht … Hier ist der Code für die Anzeige verwandter Beiträge nach Tags oder Kategorie:

  <?php $max_articles = 4; // How many articles to display echo ''; ?> 

Wie man die benutzerdefinierte function von functions.php innerhalb der oben genannten Schleife aufruft?

Solutions Collecting From Web of "Problem beim Aufrufen der benutzerdefinierten function in einer foreach-Schleife"

Zuerst müssen Sie die post_id an diese function übergeben, um die post_id in der get_the_category($post_id)

 function incomplete_cat_list($post_id = '') { global $post; $post_id = ($post_id) ? $post_id : $post->ID; $first_time = 1; $categories = get_the_category($post_id); foreach($categories as $category) { if ($category->cat_name != 'Category Name') { if ($first_time == 1) { echo 'name ) . '" ' . '>' . $category->name.''; $first_time = 0; } else { } } } } 

Diese function gibt bereits ein echo sodass Sie sie nicht erneut senden müssen. Also solltest du es so nennen.

 incomplete_cat_list($related_post->ID); 

Eine andere Sache, wenn Sie die Schleife stoppen möchten, nachdem Sie die erste Kategorie erhalten haben, anstatt diese Variable $first_time , verwenden Sie einfach break; um die Schleife zu stoppen.

@Shibi, für deinen Tipp zur Verwendung von break – so sollte die function aussehen?

 // Exclude category name from carousel function incomplete_cat_list($post_id = '') { global $post; $post_id = ($post_id) ? $post_id : $post->ID; $categories = get_the_category($post_id); foreach($categories as $category) { if ($category->cat_name != 'Category name') { echo 'name ) . '" ' . '>' . $category->name.''; break; } } }