it-swarm.com.de

Wie entferne ich unerwünschte Seiten wie Archiv, Suche usw.?

Standardmäßig verschiebt WordPress eine ganze Reihe von Seiten, die ich nicht will oder brauche - Archiv, Autor, Blog, monatliche Beiträge, aktuelle Beiträge, Kategorien, Kommentare, Anhänge, Taxenomien, Suche, Suchergebnisse und wahrscheinlich einige andere, die ich habe verpasst.

Die meiste Zeit baue ich regelmäßig Broschürenwebsites, ohne dass ich etwas anderes als ein paar ziemlich statische Seiten benötige. Wie entferne ich alle anderen Seiten? Gibt es ein Plugin, das dies erledigt? Muss ich ein Dutzend Weiterleitungen in der .htaccess einrichten? Ich habe versucht zu suchen, aber ich finde nur, wie Teile einer Seite ausgeblendet oder die Sitemap so angepasst werden kann, dass sie vor Suchen verborgen bleibt. Aber ich möchte diese Seiten überhaupt nicht, daher sollte selbst die Eingabe der direkten URL nicht funktionieren.

5
Eystein

Sie können alles, was keine Seite oder kein Administrator ist, über die Aktion parse_query nach Hause umleiten:

function wpa_parse_query( $query ){
    if( ! is_admin() && ! $query->is_page() ) {
        wp_redirect( home_url() );
        exit;
    }
}
add_action( 'parse_query', 'wpa_parse_query' );

Wenn es sich nicht um einen Administratorbildschirm oder eine Abfrage für eine Seite handelt, wird diese umgeleitet. Sie können alle Arten von Seiten, die entfernt werden, unter Bedingte Tags page im Codex sehen.

6
Milo

Joost de Valks WordPress SEO Plugin ist in der Lage, die meisten, wenn nicht alle, Archive, die Sie erwähnen, zu deaktivieren:

enter image description here

4
Johannes Pille

Sie können ein anderes kleines Skript verwenden, ohne ein Plugin hinzuzufügen. Es gibt einen Beitrag hier und der Code, den Sie in die index.php Ihres Themas einfügen müssen, lautet:

if(is_archive()) {
    // force 404
    $wp_query->set_404();
    status_header( 404 );
    nocache_headers();
    include("404.php");
    die;
}

Ich hoffe, Sie finden es nützlich.

2
Pons

Für alle, die sich fragen, habe ich .htaccess 301-Weiterleitungen verwendet.

# Redirect useless pages
Options +FollowSymlinks
RewriteEngine on
RedirectMatch 301 ^/portfolio/.*$ /gallery/
RedirectMatch 301 ^/author/.*$ /
RedirectMatch 301 ^/category/.*$ /
RedirectMatch 301 ^/tag/.*$ /
RedirectMatch 301 ^/20.*$ /

Das Blogpost-Archiv ^/20.*$ ist nicht ideal, muss es aber vorerst tun. Ich weiß auch nicht, welche anderen Seiten ich übersehen habe.

1
Eystein

Dies kann auch mit dem Hook template_redirect erreicht werden.

Sie können die einzelnen Archivseitentypen überprüfen oder sie insgesamt deaktivieren.
- Zurückgeben eines 404-Fehlers oder Weiterleiten auf eine andere Seite, ich bevorzuge den 404-Ansatz.

In functions.php:

/* Disable archives pages */
add_action('template_redirect', 'my_disable_archives_function');

function my_disable_archives_function()
{
  /* Conditional checks examples:
      is_category() 
      is_tag()
      is_date()
      is_author()
      is_tax()
      is_search() ... */

    // Return a 404 for all archive types, except the my_custom_post_type archive.
    $post_types = array('my_custom_post_type');

  if ( (is_archive() && !is_post_type_archive( $post_types )) )
  {
      global $wp_query;
      $wp_query->set_404();
  }
}
0
FFrewin