web-dev-qa-db-ja.com

(Jetpackの)共有アディボタンを投稿の一番上に移動しますか?

Jetpackに含まれるsharedaddyボタンをポストやページのコンテンツの後ではなく、前に配置するにはどうすればよいでしょうか。 sharing-service.phpでは、ボタンを印刷する関数が_contentフィルターフックにフックされているのがわかります:add_filter( 'the_content', 'sharing_display', 19 );

ただし、それを上書きするために自分のfunctions.phpファイルに何を配置すればよいかわかりません。私はどういうわけかsharing-service.phpからの出力をそれに追加するのではなくthe_contentに追加する必要があると思います。

2

基本的にそれは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);
5
Bainternet

これを試して:

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

私のために働いた

2
Matt