Problemi con 404 pagine in cui l'inserimento di messaggi e mutevoli Permalink a /% postname% /

StackOverflow https://stackoverflow.com/questions/2413962

  •  19-09-2019
  •  | 
  •  

Domanda

La routine di seguito inserisce una pagina, imposta permalink ai postname quindi tenta di aggiornare le impostazioni permalink.

Tuttavia, quando visualizza la pagina appena creata, ho ancora un errore 404. L'unico modo per farlo andare via è quello di colpire il manager Impostazioni> permalink (solo semplicemente l'accesso alla pagina fa il trucco, non hanno nemmeno bisogno di salvare).

Cosa c'è in questo?

//create and insert a post
$my_post['post_content'] = "This is the content";
$my_post['post_type'] = 'page';
$my_post['post_status'] = 'publish';
wp_insert_post($my_post);
File di responsabile per l'aggiornamento .htaccess

// Compresi     require_once (. ABSPATH 'wp-admin / include / misc.php');     require_once (. ABSPATH 'wp-admin / include / file.php');

// Prepare WordPress Rewrite object in case it hasn't been initialized yet
if (empty($wp_rewrite) || !($wp_rewrite instanceof WP_Rewrite))
{
    $wp_rewrite = new WP_Rewrite();
}

// Update permalink structure
$permalink_structure = '/%postname%/';
$wp_rewrite->set_permalink_structure($permalink_structure);

// Recreate rewrite rules
$wp_rewrite->flush_rules();
È stato utile?

Soluzione

Dove è il tuo codice, in un plug-in o di un tema?

I seguenti plug-in funziona per me in l'ultima versione di WP. Non funzionerà se .htaccess non è scrivibile, ma non credo che si può far nulla.

function my_plugin_activate() {
    $test_post = array(
        'post_title' => 'Lorem ipsum',
        'post_content' => 'Lorem ipsum dolor sit amet, consectetur adipisicing …',
        'post_status' => 'publish',
        'post_type' => 'post'
    );
    wp_insert_post($test_post);

    global $wp_rewrite;
    $wp_rewrite->set_permalink_structure('/%postname%/');
    $wp_rewrite->flush_rules();
}

register_activation_hook(__FILE__, 'my_plugin_activate');

Altri suggerimenti

Solo un suggerimento per voi ... Disabilitare qualsiasi funzionalità di cache di WordPress prima di eseguire il debug di questo problema. Spesso ho problemi permalink, quando si utilizza qualsiasi caching WP.

Il problema è sulla vostra apache.

  1. Aggiungi queste righe sul /etc/apache2/sites-available/000-default.conf.

    AllowOverride tutti richiedono tutte concesso

  2. poi sul terminale eseguire questo: sudo riscrittura a2enmod.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top