widget should display post archive by year and on click also by month

I did this for a client and it looked like this: The PHP code: <dl class=”tree-accordion”> <?php $currentyear = date(“Y”); $years = range($currentyear, 1950); foreach($years as $year) { ?> <dt><a href=””><i class=”fa fa-fw fa-plus-square-o” aria-hidden=”true”></i> <?php echo $year; ?></a></dt> <?php $archi = wp_get_archives(‘echo=0&show_post_count=1&type=monthly&year=” . $year); $archi = explode(“</li>’, $archi); $links = array(); foreach($archi as $link) … Read more

Handling error states with admin_post

You can use set_transient with the user_id if you are relying on users being logged in, otherwise, cookie would probably be better. For logged in users, you can have the user_id get set within the name of the transient. An example here: function form_post() { $user_info = wp_get_current_user(); $user_id = $user_info->exists() && !empty($user_info->ID) ? $user_info->ID … Read more

How to hook get_terms() to only show count of posts that have custom meta

As far as I remember counts for terms are stored in database, so there is nothing to modify when you fetch them – you simply get ready-made numbers. So you will either need to implement and maintain your special logic for counts completely separately or try to recalculate and modify native counts, see wp_update_term_count_now().