Emil Österlund

has_cap was called with an argument that is deprecated since version 2.0

När du har DEBUG på så kan du vid användning av plugins väldigt ofta se felmeddelandet:
has_cap was called with an argument that is deprecated since version 2.0
Den här varningen kommer oftast av att pluginet skapar en meny i administrationsgränssnittet och använder sig där av ett förlegat argument. När man skapar en meny så måste man ange vem som ska få använda administrationsmenyn för din plugin och det gör man genom wordpress "Roles and capabilities". För mig gav t.ex simplepie core pluginen den här noticen och fixet var väldigt enkelt. Leta upp raden som skapar administrationsmenyn. Den borde se ut ungefär så här:
add_options_page('SimplePie Core', 'SimplePie Core', 8, 'simplepie_core', simplepie_core_options_page');
Det tredje argumentet, i det här fallet åttan, är en siffra som anger vem som kan se det här. Men det är inte helt korrekt användning av funktionen och genererar därför felmeddelandet. Ändra i stället det tredje argumentet till 'manage_options' så försvinner felmeddelandet. Raden blir då att se ut så här:
add_options_page('SimplePie Core', 'SimplePie Core', 'manage_options', 'simplepie_core', simplepie_core_options_page');
Och det borde ta bort felmeddelandet. Tänk på att det kan förekomma på flera ställen i flera filer - på en enda plugin.  Tänk också på att om du ändrat i en plugin och den sen uppdateras till en nyare version så skrivs dina ändringar över. För att förhindra detta så uppmuntrar jag så mycket jag bara kan till att du efter att ha förbättrat en plugin skickar in en buggfix till författaren så kommer han/hon med största sannolikhet att lägga in förbättringen i koden.