wake-up-neo.com

Erweiterte benutzerdefinierte Felder und Yoast-SEO-Keyword-Analyse

Das Problem, das ich habe, ist das Tool zur Analyse von Schlüsselwortseiten liest meine benutzerdefinierten Felder nicht, daher versuche ich herauszufinden, wie ein Filter für sie ausgeführt wird.

Ich habe hier hier auf der Yoast-Website einen Blog-Post gefunden, der auf dieses Problem verweist, und sie listen den Filter wpseo_pre_analysis_post_content auf, aber ich bin nicht sicher, wie ich das auf den Feldern ausführen soll.

Ich habe eine Aktion zum Ausführen einer Funktion im Admin-Bearbeitungsbildschirm auf der ACF-Website gefunden: acf/input/admin_head , aber ich weiß nicht, wie der Filter für die geladenen Aktionen ausgeführt werden soll.

BEARBEITEN:

Ich fand heraus, dass das ACF-Plugin diesen Filter tatsächlich eingebaut hat, aber anscheinend nicht funktioniert.

        // set value
        if( !isset($field['value']) )
        {
            $field['value'] = apply_filters('acf/load_value', false, $post_id, $field);
            $field['value'] = apply_filters('acf/format_value', $field['value'], $post_id, $field);

            apply_filters( 'wpseo_pre_analysis_post_content', $field['value'] );
        }
6
hyperdrive

Blick auf den Filter:

$post_content = apply_filters( 'wpseo_pre_analysis_post_content', $post->post_content, $post );

es wäre eine Frage des Hinzufügens Ihres Feldinhalts zu der zu analysierenden Zeichenfolge.

Sie müssen den get_field() Teil richtig machen, dies ist ungetestet:

add_filter( 'wpseo_pre_analysis_post_content', 'filter_yoasts_wpse_119879', 10, 2 );

function filter_yoasts_wpse_119879( $content, $post )
{
    $fields = get_field( 'name', $post->ID );
    return $content . $fields;
}

Wie von kaiser in Kommentaren erwähnt, ist die Funktion get_field() nicht zuverlässig. Wenn es sich um ein relativ einfaches Feld handelt, ist es besser, sich an get_post_meta zu halten.

Related: Wo lege ich die Codeausschnitte ab, die ich hier oder anderswo im Web gefunden habe?

5
brasofilo

Ho, @hyperdrive - wir haben mit genau dem gleichen Szenario und Bedarf gerungen und unsere Lösung/Vorgehensweise in ein Plugin eingepackt:

http://wordpress.org/plugins/ns-seo-custom-fields/

Sie können die benutzerdefinierten Standardfeldnamen aus der Bearbeitungsoberfläche oder den "Feldnamen" -Wert von ACF verwenden. Ein Screenshot zeigt, wo genau diese Werte zu finden sind:

http://wordpress.org/plugins/ns-seo-custom-fields/screenshots/

Wir haben es gerade veröffentlicht und es funktioniert für uns. Lassen Sie uns wissen, ob es auch für Sie gut funktioniert. Sie können wahrscheinlich das, was Sie brauchen, aus dem Plugin selbst entfernen oder es an Ihre Bedürfnisse anpassen ... oder sich die Pro-Version ansehen, die noch mehr bietet, einschließlich unbegrenzter Unterstützung vor Ort.

2
Andrew