D'abord et avant tout, il s'agit certainement d'une copie de la question séculaire de "mes permaliens Wordpress génèrent 404 erreurs", mais d'une manière différente, car aucune des solutions que j'ai essayées n'a fonctionné.
Un peu d'histoire à mon problème:
J'ai développé un site Wordpress localement, tous les permaliens et tout a fonctionné. J'ai installé une nouvelle copie de Wordpress sur le serveur, importé toutes mes publications locales et tout sur la page d'accueil était superbe, c'est là que s'arrête la grandeur. Aucun des permaliens ne fonctionne, les pages, les publications (toutes les publications utilisent des types de publication personnalisés), elles me donnent toutes le message:
"Introuvable L'URL/le contenu demandé/nous avons besoin de parler de kevin/n'a pas été trouvé sur ce serveur."
Le type de message auquel ce message appartient s'appelle: "sketcphad", mais j'ai une réécriture sur ma fonction register_post_type qui en fait un "contenu" qui fonctionne vraiment localement, ce n'est donc pas le problème.
Choses que j'ai essayées:
Le problème avec cette situation est que le site fonctionne localement. Que pourrait-il se passer sur mon serveur pour causer ces problèmes? Le serveur utilise essentiellement le même environnement LAMP, à l'exception de mon environnement LAMP local qui utilise XAMPP sous Windows, mais j'ai déplacé de nombreux sites d'un serveur local vers un serveur distant sans problème de ce type.
Qu'est-ce que je ne vois pas?
Voir ci-dessous pour mon code functions.php qui enregistre les types de publication.
function sketchpad_posttype()
{
// Labels for our custom post type
$labels = array(
'name' => _x('Content', 'sketchpad'),
'singular_name' => _x('Content Entry', 'sketchpad'),
'add_new' => _x('Add New', 'Content Entry'),
'add_new_item' => __('Add Content Entry'),
'edit_item' => __('Edit Content Entry'),
'new_item' => __('New Content Entry'),
'view_item' => __('View Content Entry'),
'search_items' => __('Search Content Entries'),
'not_found' => __('Nothing found'),
'not_found_in_trash' => __('Nothing found in Trash'),
'parent_item_colon' => ''
);
// Arguments that specify how we use our custom post type
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'menu_icon' => get_stylesheet_directory_uri() . '/images/icons/notepad.png',
'rewrite' => array('slug' => 'content'),
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title','editor', 'thumbnail'),
'taxonomy' => array('category')
);
// Call the register_post_type function and make it official
register_post_type( 'sketchpad' , $args );
}
function article_posttype()
{
// Labels for our custom post type
$labels = array(
'name' => _x('Articles', 'article'),
'singular_name' => _x('Article', 'article'),
'add_new' => _x('Add New', 'Article'),
'add_new_item' => __('Add Article'),
'edit_item' => __('Edit Article'),
'new_item' => __('New Article'),
'view_item' => __('View Article'),
'search_items' => __('Search Articles'),
'not_found' => __('Nothing found'),
'not_found_in_trash' => __('Nothing found in Trash'),
'parent_item_colon' => ''
);
// Arguments that specify how we use our custom post type
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'menu_icon' => get_stylesheet_directory_uri() . '/images/icons/notepad.png',
'rewrite' => array('slug' => 'article'),
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => null,
'supports' => array('title','editor','thumbnail'),
'taxonomy' => array('category')
);
// Call the register_post_type function and make it official
register_post_type( 'article' , $args );
}
// Register our custom post types
add_action('init', 'sketchpad_posttype');
add_action('init', 'article_posttype');
Le problème n'était pas dû à Wordpress. J'ai découvert que mon fichier httpd.conf comportait un paramètre par défaut AllowOverride None, ce qui empêchait mes règles de réécriture de mon fichier .htaccess de fonctionner. Probablement quelque chose que j'aurais dû vérifier en premier lieu, mais facile à négliger aussi.