Wie füge ich Drupal 7 das Attribut rel = "author" hinzu?

7

In der schönen neuen Welt von Google ist eine gute Integration in Google+ für alle Webmaster obligatorisch, die so viel Verkehr wie möglich erhalten möchten. Wenn das Hinzufügen des rel="publisher"Attributs zu einer Website mit dem Meta-Tags-Modul erfolgt, gibt es anscheinend keine offizielle Möglichkeit, das Attribut rel = "author" zu unterstützen. Für diejenigen unter Ihnen, die nichts über mich wissen, lesen Sie diesen Artikel von Google: Autoreninformationen in den Suchergebnissen

Anscheinend wird Unterstützung in Drupal 8 enthalten sein. Ich habe einige Diskussionen darüber gesehen, wie dies dem Drupal 8-Kern hinzugefügt werden kann.

Aber wie kann man das in Drupal 7 implementieren?

Ich bitte dies als Noob bei der Anpassung der Innenseiten von Drupal. Wenn Sie also gute Ideen haben, denken Sie bitte daran.

Schätzen Sie Ihre Ideen.

Corporate Geek
quelle
Möchten Sie, dass dies als Meta-Tag zum Kopfbereich der Seite hinzugefügt wird?
Madis
Ja. So sollte es laut Google gemacht werden. Für jeden Artikel fügen Sie den Link zum Google+ Profil dieses Autors ein.
Corporate Geek
Laut Google Authorship wird Markup seit August 2014 nicht mehr in der Websuche unterstützt. Weitere Informationen finden Sie hier unter support.google.com/webmasters/answer/6083347?hl=de und hier plus.google.com/+JohnMueller/posts/HZf3KDP1Dm8
TheodorosPloumis

Antworten:

8

Die Eigenschaft rel = author wird jetzt von der Drupal 7 Metatags-Modulentwicklungsversion unterstützt.

Gehen Sie nach der Installation des Metatags-Moduls ( http://drupal.org/project/metatag ) zu admin / config / search / metatags und bearbeiten Sie die Startseite oder eine der Knotenseiten. Unter "Erweitert" sehen Sie die Felder "Autor" und "Herausgeber", in die Sie Ihre Google + -Seiten-URL eingeben können. Auf dem folgenden Screenshot habe ich die Stellen, an denen Sie die Konfiguration ändern müssen, in Pink markiert.

Konfigurationsseite der Metatags-Startseite:

Hier ist mein Screenshot - die Konfiguration ist rosa markiert

Druvision
quelle
Vielen Dank, dass Sie darauf hingewiesen haben, dass es viel weniger kompliziert ist, ein Token zu erstellen und die Leute es auf diese Weise eingeben zu lassen.
Stephen P.
5

Mit Ideen aus der rdf_preprocess_node()Funktion, die Dave Hall verknüpft hat, können Sie sie folgendermaßen implementieren (Code wird in die Datei template.php Ihres Themas eingefügt):

function mytheme_preprocess_node(&$variables) {
  if ($variables['page']) {
    $account = user_load($variables['uid']);
    $title = $account->name;

    $author_info = array(
      '#tag' => 'link',
      '#attributes' => array(
        'rel' => 'author',
        'href' => 'http://localhost',
        'title' => $title,
      ),
    );

    drupal_add_html_head($author_info, 'author');
  }
}

Dadurch wird der erforderliche Link in den Kopfbereich der vollständigen Knotenseiten eingefügt. Ich habe die ID des Knotenautors verwendet, um die erforderlichen Benutzerdaten abzurufen. Sie möchten wahrscheinlich ein Website-Feld für Benutzer hinzufügen, das Sie hier verwenden können, um eine vollständige Lösung zu erhalten.

Madis
quelle
Also sollte ich für jeden Nutzer ein Feld hinzufügen, in dem die Linkinformationen zum Google+ Profil gespeichert sind. Entschuldigen Sie auch meine Unwissenheit hier - gibt es einen bestimmten Namen, den ich diesem Feld geben sollte?
Corporate Geek
@CorporateGeek Ja, ich denke, das wäre ein guter Ansatz und der Feldname spielt keine Rolle. Das Profile2- Modul scheint für die Feldaddition geeignet zu sein. Ich könnte hier weg sein, aber Sie könnten wahrscheinlich verwenden $page = $account->field_myfieldname['und'][0]['value'];, um den Wert später im Code abzurufen und ihn dem Attribut 'href' hinzuzufügen.
Madis
Das Profile2-Modul in Drupal 7 ist derzeit nicht erforderlich, da die Feldunterstützung für Benutzer bereits im Kern enthalten ist (admin / config / people / accounts / fields).
Madis
Dies ist ein ausgezeichneter Ansatz. Das einzige, was ich geändert habe, war if ($node = menu_get_object()) { if($node->type == "blog") { ...das Testen meines Blog-Inhaltstyps. Vielen Dank! Ich mag auch die Idee, ein Feld für die G + URL hinzuzufügen, wenn sich mehr als ein Benutzer auf einer Site befindet. Auf diese Weise ist es vollständig dynamisch.
Danny Englander
1

Ich weiß, dass ich zu spät zur Party komme, aber ich beantworte dies für Leute, die auf dieser Seite auf der Suche nach einer Lösung landen.

Es gibt jetzt ein Google Authorship-Modul .

GabeSullice
quelle
0
function themename_preprocess_username(&$vars) {
  // Username is linked, use the link_attributes to inject the rel attribute
  if (isset($vars['link_path'])) {
    $vars['link_attributes']['rel'][] = 'author';
  }
  // Username is NOT linked, use the attributes_array to inject the rel attribute
  else {
    $vars['attributes_array']['rel'][] = 'author';
  }
}
2pha
quelle