Jetpackに含まれるsharedaddyボタンをポストやページのコンテンツの後ではなく、前に配置するにはどうすればよいでしょうか。 sharing-service.php
では、ボタンを印刷する関数が_contentフィルターフックにフックされているのがわかります:add_filter( 'the_content', 'sharing_display', 19 );
ただし、それを上書きするために自分のfunctions.phpファイルに何を配置すればよいかわかりません。私はどういうわけかsharing-service.php
からの出力をそれに追加するのではなくthe_content
に追加する必要があると思います。
基本的にそれはsharing-service.phpの480行目にあります。
return $text.$sharing_content;
そしてそれは
return $sharing_content.$text;
そのファイルを変更しても、変更内容は更新されません。そのため、その関数(sharing_display)をfunctions.phpにコピーして、別の名前に変更してmy_sharing_display
と言うことができます。
次に、pluginが追加したフィルタを削除して自分のものに置き換える必要があるので、functions.php addに追加します。
//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 );
remove_filterフックは、コーデックスからpriorityパラメータが欠けているため、実際には削除されません。
重要:フックを削除するには、フックが追加されたときに$ function_to_remove引数と$ priority引数が一致している必要があります。これはフィルタとアクションの両方に当てはまります。取り外しが失敗しても警告は表示されません。
だから変更します。
remove_filter( 'the_content', 'sharing_display');
remove_filter( 'the_excerpt', 'sharing_display');
に:
remove_filter( 'the_content', 'sharing_display',19);
remove_filter( 'the_excerpt', 'sharing_display',19);
これを試して:
<?php
if ( function_exists( 'sharing_display' ) ) {
echo sharing_display();
}
the_content();
?>
私のために働いた