Проблемы с 404 страницами при вставке постов и изменении постоянной ссылки на /% postname% / - PullRequest
0 голосов
/ 10 марта 2010

Подпрограмма ниже вставляет страницу, устанавливает постоянные ссылки на postname, затем пытается обновить настройки постоянных ссылок.

Однако при просмотре вновь созданной страницы все равно появляется ошибка 404. Единственный способ избавиться от него - это нажать «Настройки»> «Менеджер постоянных ссылок» (просто получить доступ к странице, мне даже не нужно сохранять).

Что с этим?

//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);

// Включая файлы, отвечающие за обновление .htaccess require_once (ABSPATH. 'wp-admin / includes / misc.php'); require_once (ABSPATH. 'wp-admin / includes / 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();

Ответы [ 3 ]

0 голосов
/ 10 марта 2010

Где ваш код, в плагине или теме?

Следующий плагин работает для меня в последней версии WP. Это не будет работать, если .htaccess не доступен для записи, но я не думаю, что вы можете с этим что-то сделать

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');
0 голосов
/ 27 апреля 2016

Проблема на вашем апаче.

  1. Добавьте эти строки в /etc/apache2/sites-available/000-default.conf.

    AllowOverride all Требуется все предоставлено

  2. затем на терминале запустите: sudo a2enmod rewrite.

0 голосов
/ 10 марта 2010

Только предложение для вас ... Отключите все функции кэширования WordPress перед устранением этой проблемы. Часто возникают проблемы с постоянными ссылками при использовании любого кэширования WP.

...