Wordpress Постоянные ссылки: Удалить базу тегов и добавить расширение .html - PullRequest
2 голосов
/ 01 марта 2011

Мой вопрос:

My permalink settings:

Общие настройки> Пользовательские> /%postname%.html

Необязательные настройки>База тегов> тег


Мне нравится: mysite.com/%tag-slug%.html

Спасибо


Отредактировано для @Dimitry

был именно таким, каким я хочу

<?php
/*
Plugin Name: Custom tag URLs
Description: Appends .html to tag links
*/

// applied when calling get_tag_link()
add_filter('tag_link', 'my_tag_link', 10, 2);

/**
 * Returns a link to a tag. Instead of /tag/tag-name/ returns /tag-name.html
 */
function my_tag_link($tag_link, $tag_id) {
    $tag_base = get_option('tag_base');
    if ($tag_base) {
        // problem. returning: http://www.domain.com/post-tag/tag-name
        //$tag_link = preg_replace('@^' . preg_quote($tag_base, '@') . '@', '', $tag_link);

        // I added it. Result: http://www.domain.com/tag-name
        $tag_link = str_replace("$tag_base/", "", preg_replace('@^' . preg_quote($tag_base, '@') . '@', '', $tag_link)); 
        //echo "$tag_link<br>";
    }
    // problem. returning: http://www.domain.com/http://www.domain.com/tag-name.html
    //return '/' . trim($tag_link, '/') . '.html';

    // I added it. Result: http://www.domain.com/tag-name.html , 
    return trim($tag_link, '/') . '.html';

}
?>

Я сделал настройки постоянной ссылки

Общие настройки> Пользовательские> / post-% postname%.html Дополнительные параметры> База тегов> пост-тег

.htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# Rewrites /tag-name.html as /post-tag/tag-name
# Assuming that your tag_base option is blank or set to 'post-tag'
RewriteCond %{REQUEST_URI} !^/post-.*
RewriteRule ^/?([^/]*)\.html$ /post-tag/$1

Отдельные страницы: http://www.domain.com/post-hello-world.html >> работает Тег страницы: http://www.domain.com/tag-name.html >> Не найдено 404 http://www.domain.com/post-tag/tag-name >> работает

Проблема:

Страницы тегов не найдены

Извините.Я новичокСпасибо Димитрий

Ответы [ 3 ]

1 голос
/ 06 марта 2011

Я не уверен, что вы можете что-либо сделать через интерфейс администратора, но вы можете добавить немного своего собственного кода в качестве плагина (внутри wp-content / plugins / tag_links.php):

<?php
/*
Plugin Name: Custom tag URLs
Description: Appends .html to tag links
*/

// applied when calling get_tag_link()
add_filter('tag_link', 'my_tag_link', 10, 2);

/**
 * Returns a link to a tag. Instead of /tag/tag-name/ returns /tag-name.html
 */
function my_tag_link($tag_link, $tag_id) {
    $tag_base = get_option('tag_base');
    if ($tag_base) {
        $tag_link = preg_replace('@^' . preg_quote($tag_base, '@') . '@', '', $tag_link); 
    }
    return '/' . trim($tag_link, '/') . '.html';
}

И в вашем .htaccess файле над другими правилами перезаписи сделайте что-то вроде:

# Rewrites /tag-name.html as /post-tag/tag-name
# Assuming that your tag_base option is blank or set to 'post-tag'
RewriteCond %{REQUEST_URI} !^/post-.*
RewriteRule ^/?([^/]*)\.html$ /post-tag/$1

И структура вашего пост-URL будет выглядеть так: post-% postname% .html.

Все это говорит о том, что ваши теги и сообщения должны иметь хотя бы одну отличительную особенность в структуре URL. В данном случае это префикс «post-» для почтовых URL.

Вы строите вики?

0 голосов
/ 23 июля 2014

Привет Попробуйте это http://wordpress.org/plugins/import-html-pages/

mports правильно сформированные статические файлы HTML в WordPress.Требуется PHP 5.

Этот плагин будет импортировать каталог файлов в виде страниц или сообщений.Вы можете указать тег HTML (например, или) или область шаблона Dreamweaver (например, «Основное содержимое»), содержащую содержимое, которое вы хотите импортировать.

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

По мере импорта файлов будут отображаться полученные идентификаторы, постоянные ссылки и заголовки.По завершении импортер предоставит список перенаправлений Apache, которые можно использовать в вашем файле .htaccess для плавной передачи посетителей из старых расположений файлов в новые постоянные ссылки WordPress.Начиная с версии 2.0, если вы изменили структуру постоянных ссылок после импорта файлов, вы можете повторно создать перенаправления - старый URL-адрес файла сохраняется в качестве настраиваемого поля в импортированной записи.

0 голосов
/ 05 марта 2011

Поправьте меня, если я ошибаюсь, но я думаю, что это НЕ МОЖЕТ быть сделано из-за дублированного контента.

...