Why my hook_menu does not work?
"user" is a path already used by the User module; if your module is not executed after the User module (i.e. you are not altering the order hooks are executed), the menu item of the User module takes the precedence. (That is also the wrong way to alter the menu item defined from another module, but your purpose is not that.)

  // Registration and login pages.
  $items['user'] = array(
    'title' =&gt; 'User account',
    'title callback' =&gt; 'user_menu_title',
    'page callback' =&gt; 'user_page',
    'access callback' =&gt; TRUE,
    'file' =&gt; 'user.pages.inc',
    'weight' =&gt; -10,
    'menu_name' =&gt; 'user-menu',
  );


If you want to define a menu tab for each user account, as I think, the definition of your menu item should be similar to this, used from the User module.

  $items['user/%user/edit'] = array(
    'title' =&gt; 'Edit',
    'page callback' =&gt; 'drupal_get_form',
    'page arguments' =&gt; array('user_profile_form', 1),
    'access callback' =&gt; 'user_edit_access',
    'access arguments' =&gt; array(1),
    'type' =&gt; MENU_LOCAL_TASK,
    'file' =&gt; 'user.pages.inc',
  );


For example, something similar to the following would work.

  $items['user/%user/edit'] = array(
    'title' =&gt; 'Blogs',
    'description' =&gt; 'Listing of blogs.',
    'page callback' =&gt; 'cleanetica_advanced_blog_page',
    'page arguments' =&gt; array(1),
    'access arguments' =&gt; array('access content'),
    'type' =&gt; MENU_LOCAL_TASK,
  );



The page callback receives an argument: the user object for the user account. It will be called from Drupal as cleanetica_advanced_blog_page($account).
Every function implemented by a module needs to be prefixed by its short name.
The menu type is MENU_LOCAL_TASK since there is already a MENU_DEFAULT_LOCAL_TASK menu item, and there cannot be two MENU_DEFAULT_LOCAL_TASK; the other tab is also the tab showing the details for the user account, and it is better to keep that as default tab.


If you want to show a list of blog posts global for all the users, then you need to change the path from user, or user/%user/edit, to (for example) blogs. Adding it as tab of the user tab doesn't make any sense, since the page would list content, not a list of users; it would be also shown together user/login, user/register, and it doesn't make sense to show a list of blog posts to who is registering/logging in.