it-swarm.com.de

Entfernen Sie das Meta-Robots-Tag von wp_head

Ich muss nur diese Zeile <meta name=robots content="noindex,follow"/> aus wp_head entfernen, kann jedoch nicht den richtigen Haken finden, um sie mit remove_action() zu verwenden.

<meta name=robots content="noindex,follow"/>

Grundsätzlich möchte ich nur diese Zeile aus der Kopfzeile entfernen, aber nur für die Suchseite. In diesem Fall würde ich also etwas Ähnliches verwenden wie:

if ( is_search() ) { remove_action('wp_head', 'whatever-the-action-name-is'); }
3
elvismdev

Ich habe es verstanden, die Ausgabe wird durch das WordPress SEO Plugin gesteuert, da dies auf der Seite aktiviert ist, also musste ich winzigen Code in der Plugin-Datei class-frontend.php

Offensichtlich gefällt mir diese schmutzige Lösung nicht so gut, aber sie gibt dieses Meta nun auf der Suchseite so aus, wie ich es möchte.

In der Plugin-Datei class-frontend.php musste ich die Zeile 552 durch diese ersetzen

if ( is_search() ) { $robots['follow'] = 'nofollow'; } else { $robots['follow'] = 'follow'; }
0
elvismdev
add_filter('wpseo_robots', 'yoast_no_home_noindex', 999);
function yoast_no_home_noindex($string= "") {
    if (is_home() || is_front_page()) {
        $string= "index,follow";
    }
    return $string;
}

das sollte in ordnung sein, denke ich .. irgendwo in deiner theme functions.php und sollte den trick machen.

5
Sovit Tamrakar

Gestützt auf Ihre Kommentare zu meiner anderen Antwort, die impliziert, dass Sie nach eingehender Untersuchung der WordPress-Kernquelle (insbesondere default-filters.php ) ausdrücklich die Aktivierung von "Suchmaschinen von der Indizierung dieser Site abhalten" beibehalten möchten Ich denke, das warst du wahrscheinlich:

add_action( 'posts_selection', 'indexSearchPage' );

function indexSearchPage() {
    // Be sure to include the priority for the action or it won't be removed
    if( is_search() )
        remove_action( 'wp_head', 'noindex', 1 );
}

Ich verwende den Aktions-Hook posts_selection als ersten Hook in der Laderoutine von WordPress, der Zugriff auf Bedingte Tags hat. Sie können spätere Aktionen bis einschließlich wp_head verwenden. Wenn Sie jedoch wp_head selbst verwenden, müssen Sie die Aktion mit einer niedrigeren Priorität als 1 hinzufügen, da noindex mit der Priorität 1 hinzugefügt wird:

add_action( 'wp_head', 'indexSearchPage', -1 );

Alternativ ist es möglich, WordPress bedingt zu täuschen, dass "Suchmaschinen von der Indizierung dieser Site abhalten" deaktiviert ist:

add_action( 'posts_selection', 'indexSearchPage' );

function indexSearchPage() {
    if( is_search() ) {
        $alloptions = wp_load_alloptions();
        $alloptions[ 'blog_public' ] = '1';
        wp_cache_set( 'alloptions', $alloptions, 'options' );
        wp_cache_set( 'blog_public', '1', 'options' );
    }
}
1
bosco

Ich würde empfehlen, einfach das Kontrollkästchen "Suchmaschinen von der Indizierung dieser Site abhalten" von Settings > Reading auf dem Dashboard zu deaktivieren (dies sollte die roboterrelevanten Meta-Tags von allen Seiten Ihrer Site entfernen) und dann das Meta-Tag manuell wieder zu Ihrer Site hinzuzufügen Der Header des Themas verwendet Bedingungen wie folgt:

if( ! is_search() )
    echo( '<meta name="robots" content="noindex,nofollow" />' );

Möglicherweise müssen Sie die Bedingungen ändern, um den gewünschten Effekt zu erzielen, aber ich denke, Sie haben die Idee.

Wenn Sie Ihr Thema nicht ändern möchten, können Sie es an den Aktions-Hook wp_head anhängen:

add_action( 'wp_head', 'noRobots' );

function noRobots() {
    if( ! is_search() )
        echo( '<meta name="robots" content="noindex,nofollow" />' );
}
0
bosco