J'ai un bug étrange sur le tableau de bord: le tableau de bord indique qu'il y a 3 messages au total, mais la liste est vide et indique "Aucun message trouvé" (voir l'image ci-dessous)
C'est une nouvelle installation sur un hébergement Windows partagé, utilisant SQL Server comme base de données avec le plugin WP Db Abstraction . J'ai essayé de réinstaller complètement WP et le bogue est toujours là. Avant de réinstaller WP, je l'avais configuré pour plusieurs sites et j'avais le même problème dans la liste de sites.
Je suis un débutant avec WordPress et je ne sais pas comment résoudre ce problème ... toute aide serait grandement appréciée!
UPDATE: J'ai examiné les requêtes envoyées à la base de données et il semble que la requête censée renvoyer la liste des publications soit la suivante:
SELECT TOP 0 *
FROM wp_posts
WHERE 1=1
AND wp_posts.post_type LIKE 'post'
AND (wp_posts.post_status = 'publish' OR wp_posts.post_status LIKE 'future' OR wp_posts.post_status LIKE 'draft' OR wp_posts.post_status LIKE 'pending' OR wp_posts.post_status LIKE 'private')
ORDER BY wp_posts.post_date DESC
Et bien sûr, TOP 0
renvoie 0 ligne ... cette requête semble être générée par le plug-in d'abstraction de base de données lorsqu'il tente de traduire la clause LIMIT
en SQL Server.
Donc, je suppose que mes seules options sont:
LIMIT
dans SQL Server)Essayez le correctif publié ici: http://sourceforge.net/tracker/?func=detail&aid=3485384&group_id=315685&atid=1328061
Cela a fonctionné pour moi.
translations.php ligne 726 Modifiez ceci: $ pattern = '/ LIMIT\s * (\ d +) ((\ s *,?\s *) (\ d +)) (; {0,1}) $/est'; à ceci: $ pattern = '/ LIMIT\s (\ d +) ((\ s *,?\s *) (\ d +) *); {0,1} $/is';
Supprimer les parenthèses supplémentaires permet à "LIMIT 0, 10" de devenir "TOP 10". Avec les parenthèses supplémentaires, le "0" est utilisé à la place.
J'ai eu le même problème et il a été résolu en modifiant le fichier translations.php comme indiqué dans ce post sur les forums officiels de DB Abstraction.
Le code suivant:
// Check for true offset
if ( count($limit_matches) == 5 && $limit_matches[1] != '0' ) {
$true_offset = true;
} elseif ( count($limit_matches) == 5 && $limit_matches[1] == '0' ) {
$limit_matches[1] = $limit_matches[4];
}
Devrait être:
// Check for true offset
if ( count($limit_matches) == 5 && $limit_matches[1] != '0' ) {
$true_offset = true;
} elseif ( count($limit_matches) >= 5 && $limit_matches[1] == '0' ) {
$limit_matches[1] = $limit_matches[4];
}
Référence: http://wordpress.org/support/topic/plugin-wp-db-abstraction-not-showing-posts
Puisque vous utilisez MSSQL, la réparation est un peu différente. Assurez-vous de sauvegarder votre base de données avant toute action, juste au cas où. Voici du code provenant de Microsoft pour MSSQL 2000 - la commande peut être différente selon votre version. Si cela ne fonctionne pas, recherchez simplement 'base de données de réparation SQL Server (année)' et vous obtiendrez un résultat similaire. commande pour votre système.
DBCC CHECKDB
( 'database_name'
[ , NOINDEX
| { REPAIR_ALLOW_DATA_LOSS
| REPAIR_FAST
| REPAIR_REBUILD
} ]
) [ WITH { [ ALL_ERRORMSGS ]
[ , [ NO_INFOMSGS ] ]
[ , [ TABLOCK ] ]
[ , [ ESTIMATEONLY ] ]
[ , [ PHYSICAL_ONLY ] ]
}
]