web-dev-qa-db-ja.com

Functions.phpのプラグイン関数を上書きする

$title = get_bloginfo();を - > $title = get_bloginfo('siteurl');で上書きしたいのですが

プラグインからのいくつかのコード " 本当にシンプルなFacebook Twitterの共有ボタン ":

function really_simple_share ($content, $filter, $link='', $title='', $author='') {
    static $last_execution = '';

    ...

    $custom_field_disable = get_post_custom_values('really_simple_share_disable');
    if ($custom_field_disable[0]=='yes' and $filter!='shortcode') {
        return $content;
    }

    //GET ARRAY OF STORED VALUES
    global $really_simple_share_option;
    $option = $really_simple_share_option;

    ...

    $first_shown = false; // NO PADDING FOR THE FIRST BUTTON

    // IF LINK AND TITLE ARE NOT SET, USE DEFAULT FUNCTIONS
    if ($link=='' and $title=='') {
        $link = ($option['use_shortlink']) ? wp_get_shortlink() : get_permalink();

        $title = get_bloginfo(); // OVERRIDE

        $author = get_the_author_meta('nickname');
    }

更新のたびにこの行を変更せずにこのプラグインを更新するので、functions.phpでこれを実行できますか。

ありがとう

2
ogni

get_bloginfo()をフィルタリングすることは可能ですが、オーバーライドは global ...なので、条件を微調整する方法を見つける必要があります。

add_filter( 'pre_option_blogname', 'wpse_58030_override_blogname' );

function wpse_58030_override_blogname( $bool )
{
    // If not page with ID == 28, do nothing
    if( !is_page( 28 )  ) 
        return false;

    // Change the 'blogname'
    return "Not The Blog Name";
}

enter image description here

観察

get_bloginfo()get_bloginfo('blogname')と同じです。

目的のフィルタがsiteurlの場合、フィルタはpre_option_siteurlになります。

2
brasofilo