web-dev-qa-db-de.com

Sharedaddy-Schaltflächen (in Jetpack) an den Anfang eines Posts verschieben?

Wie würde man die in Jetpack enthaltenen Sharedaddy-Schaltflächen verschieben, um sie vor dem Inhalt eines Posts oder einer Seite zu platzieren, anstatt danach? Ich sehe, dass in sharing-service.php die Funktion, die die Schaltflächen druckt, mit dem Filter-Hook_content verknüpft ist: add_filter( 'the_content', 'sharing_display', 19 );

Ich bin mir nicht sicher, was ich in meine functions.php-Datei schreiben soll, um das zu überschreiben. Ich gehe davon aus, dass ich irgendwie bewirken muss, dass die Ausgabe von sharing-service.php dem the_content vorangestellt und nicht angehängt wird.

2

Grundsätzlich steht in der Datei sharing-service.php in Zeile 480:

return $text.$sharing_content;

und es sollte sein

return $sharing_content.$text;

wenn Sie diese Datei jetzt ändern, werden Ihre Änderungen bei Aktualisierungen nicht beibehalten, sodass Sie diese Funktion (sharing_display) in die Datei functions.php kopieren und in etwas anderes umbenennen können, beispielsweise my_sharing_display, und die Änderung dort vornehmen können.

Als nächstes müssen Sie die Filter entfernen, die das Plugin hinzufügt, und durch Ihre eigenen ersetzen, damit in Ihrer functions.php Folgendes hinzugefügt wird:

//remove old
remove_filter( 'the_content', 'sharing_display');
remove_filter( 'the_excerpt', 'sharing_display');
//add new
add_filter( 'the_content', 'my_sharing_display', 19 );
add_filter( 'the_excerpt', 'my_sharing_display', 19 );

Aktualisieren

der Haken "remove_filter" wird nicht entfernt, da der Parameter "priority" im Codex fehlt:

Wichtig: Um einen Hook zu entfernen, müssen die Argumente $ function_to_remove und $ priority übereinstimmen, als der Hook hinzugefügt wurde. Dies gilt sowohl für Filter als auch für Aktionen. Bei fehlgeschlagener Entfernung wird keine Warnung ausgegeben.

also ändere:

remove_filter( 'the_content', 'sharing_display');
remove_filter( 'the_excerpt', 'sharing_display');

zu:

remove_filter( 'the_content', 'sharing_display',19);
remove_filter( 'the_excerpt', 'sharing_display',19);
5
Bainternet

versuche dies:

<?php 
if ( function_exists( 'sharing_display' ) ) {
    echo sharing_display();
}
the_content();
?>

arbeitete für mich

2
Matt