Count foreach и отображение в меню php

как подсчитать элементы внутри foreach и отобразить количество в wp-меню. У меня есть следующий код для подсчета элементов, но не могу получить решение для эха в меню

<?php $count = 0; //Hier ist der Count-Begin-Foreach foreach ( $bookmarks as $bookmark ) : $count++; //Hier ist der Count-Inner-Foreach if ( get_post_status( $bookmark->post_id ) !== 'publish' ) { continue; } $has_bookmark = true; ?> <tr> <td width="50%"> <?php echo '<a href="' . get_permalink( $bookmark->post_id ) . '">' . get_the_title( $bookmark->post_id ) . '</a>'; ?> <ul class="job-manager-bookmark-actions"> <?php $actions = apply_filters( 'job_manager_bookmark_actions', array( 'delete' => array( 'label' => __( 'Delete', 'wp-job-manager-bookmarks' ), 'url' => wp_nonce_url( add_query_arg( 'remove_bookmark', $bookmark->post_id ), 'remove_bookmark' ) ) ), $bookmark ); foreach ( $actions as $action => $value ) { echo '<li><a href="' . esc_url( $value['url'] ) . '" class="job-manager-bookmark-action-' . $action . '">' . $value['label'] . '</a></li>'; } ?> </ul> </td> <td width="50%"> <?php echo wpautop( wp_kses_post( $bookmark->bookmark_note ) ); ?> </td> </tr> <?php endforeach; ?> <?php print "Sie haben " . $count . " Lesezeichen gesetzt."; //Hier ist der Count-Output?> 

Вы увеличиваете $count но я вижу, что вы ссылаетесь $counter . Не уверен, что они разные, но вот версия, которая использует одну и ту же переменную во всех этих местах.

 $counter = 0; //Hier ist der Count-Begin-Foreach foreach ( $bookmarks as $bookmark ) : if ( get_post_status( $bookmark->post_id ) !== 'publish' ) { continue; } // moving below the if statement $counter ++; //Hier ist der Count-Inner-Foreach $has_bookmark = true; ?> <tr> <td width="50%"> <?php echo $counter ?> <?php echo '<a href="' . get_permalink( $bookmark->post_id ) . '">' . get_the_title( $bookmark->post_id ) . '</a>'; ?> <ul class="job-manager-bookmark-actions"> <?php $actions = apply_filters( 'job_manager_bookmark_actions', array ( 'delete' => array ( 'label' => __( 'Delete', 'wp-job-manager-bookmarks' ), 'url' => wp_nonce_url( add_query_arg( 'remove_bookmark', $bookmark->post_id ), 'remove_bookmark' ), ), ), $bookmark ); foreach ( $actions as $action => $value ) { echo '<li><a href="' . esc_url( $value[ 'url' ] ) . '" class="job-manager-bookmark-action-' . $action . '">' . $value[ 'label' ] . '</a></li>'; } ?> </ul> </td> <td width="50%"> <?php echo wpautop( wp_kses_post( $bookmark->bookmark_note ) ); ?> </td> </tr> <?php endforeach; ?> <?php print "Sie haben " . $counter . " Lesezeichen gesetzt."; //Hier ist der Count-Output?> 

Если вы хотите получить счет, вы можете также сделать функцию, чтобы сделать именно это. Затем вызовите его напрямую. Я понятия не имею, откуда $bookmarks , поэтому вам придется это понять.

 function get_number_of_bookmarks( $bookmarks = array () ) { $counter = 0; foreach ( $bookmarks as $bookmark ) : if ( get_post_status( $bookmark->post_id ) !== 'publish' ) { continue; } $counter ++; endforeach; return $counter; } ?> <div class="primary nav-menu"> <?php // do your menu echo primary_nav_menu(); // Example with an empty array, but this should be your bookmarks array $bookmarks_array = array(); // echo the count echo get_number_of_bookmarks( $bookmarks_array ); ?> </div>