首页 > 解决方案 > 导航中的工作计数

问题描述

我正在尝试在我的菜单项“工作”中添加一个数字,以显示有多少工作可用。

这是一个例子

我有价值(工作数量),但我不知道如何将数字添加到我的菜单项中。

<?php
add_filter( 'nav_menu_link_attributes', 'dfib_contact_menu_atts', 10, 3 );
function dfib_contact_menu_atts( $atts, $item, $args ) {

    $jobs = new WP_Query(array( 'post_type' => 'jobs' ));

    if ($jobs->have_posts()) { 
        $count_posts = wp_count_posts( 'jobs' )->publish;
        echo "<span class='jobs__count'>$count_posts</span>"; 
    }

    // The ID of the target menu item
    $menu_target = "menu-item-19";

      // inspect $item
      if ($item->ID == $menu_target) {
        $atts["data-badge"] = $count_posts;
      }
      return $atts;
}
?>

我想将此数字添加到具有“menu-item-job”类的菜单项中,但我不知道如何在 php 中执行此操作

标签: phphtmlcsswordpressvariables

解决方案


您应该使用 nav_menu_link_attributes() 钩子,如下所述:

https://wordpress.stackexchange.com/questions/121123/how-to-add-a-data-attribute-to-a-wordpress-menu-item

也就是说,类似:

add_filter( 'nav_menu_link_attributes', 'wpse121123_contact_menu_atts', 10, 3 );
function wpse121123_contact_menu_atts( $atts, $item, $args )
{
  // The ID of the target menu item
  $menu_target = 123;

  // inspect $item
  if ($item->ID == $menu_target) {
    $atts['data-badge'] = $count_posts;
  }
  return $atts;
}

$count_posts因此,将为您的菜单项显示具有值的新属性“data-badge” (假设它的 id 为 123)。

然后,您必须实现与示例站点上相同的前端解决方案,以显示该属性,因为它在那里显示。


推荐阅读