plugin wants to update to wrong plugin

I get a “update available” notification for my custom plugin “breadcrumbs trail nav” (not hosted in the official repo). Point is that there’s a) no update available and b) it wants to get updated to version whatever from the yoast-breadcrumb plugin. Case: local install.

My plugin header comment:

/*
Plugin Name:    Breadcrumbs Trail Nav.
Plugin URI:     https://github.com/franz-josef-kaiser
Description:    Offers the <code>whatever( $args );</code> template tag for a  semantically correct, seo-ready (well performing) breadcrumbs trail. All links are nofollow by default, but can be adjusted.
Author:         Franz Josef Kaiser
Author URI:     https://github.com/franz-josef-kaiser
Version:        0.2.1
License:        extended MIT/Expat license

(c) Copyright 2010-2011 - Franz Josef Kaiser
*/

Yoast plugin header comment:

/*
Plugin Name:  Yoast Breadcrumbs
Plugin URI:   http://yoast.com/wordpress/breadcrumbs/
Description:  Outputs a fully customizable breadcrumb path.
Version:      0.8.5
Author:       Joost de Valk
Author URI:   http://yoast.com/

Copyright (C) 2008-2010, Joost de Valk
*/

What’s the problem?

Solutions Collecting From Web of "plugin wants to update to wrong plugin"

The updater works based on the plugin’s installation path and the name of the file containing the header. I’m guessing both plugins are housed in a /breadcrumbs folder (since that seems to be Yoast’s setup.

Though Yoast’s plugin uses yoast-breadcrumbs.php for its main file. I’m assuming you’re using a different filename, so you have indeed run into an interesting problem.

I’d take a closer look at your system, because the updater sends two variables when checking for updates:

  • “plugin_slug” … in this case likely breadcrumbs
  • “plugin_path” … /breadcrumbs/yoast-breadcrumbs.php

There’s a naming collision between your system and Yoast’s if they’re both called “Breadcrumbs” to WordPress. I’d recommend changing your system to put things in the /kaiser-breadcrumbs directory instead. That might solve your problem.