【wordpressプラグインカスタマイズ】Advanced Custom Fieldsプラグインのカスタムフィールドの内容をWordPress Popular Postsに表示させる方法
タイトルが長い…
というわけで、よくあると思うんですけどプラグインで入力なり何かしたデータを他のプラグイン中にも使いたいこと。
今回はAdvanced Custom Fieldsプラグインのフィールドに入力したデータを、Wordpress Popular Posts(以下、「WPP」汚い感じでゴメン…)で出力するタイトルにくっつけて表示させるっていうのを実装しました。
ただし、当然ながらプラグインはアップデートしたら上書きされて、カスタマイズしたところは元に戻るので注意。
今回はWPPのタイトル出力に企業名を入れるという設定でカスタマイズするので、変数名がそれっぽい名前になります。
修正前はこんな感じ。
ソースの修正箇所
まずは1903行目あたり。
WPMLの問題をクリアするためのif文があります。
ココのifとelse両方にカスタムフィールドからの値を変数「$comname」に代入。
// WPML support, based on Serhat Evren's suggestion - see http://wordpress.org/support/topic/wpml-trick#post-5452607 if ( defined('ICL_LANGUAGE_CODE') && function_exists('icl_object_id') ) { $current_id = icl_object_id( $p->id, get_post_type( $p->id ), true, ICL_LANGUAGE_CODE ); $permalink = get_permalink( $current_id ); $comname = get_field('company_name', $p->id); } // Get original permalink else { $permalink = get_permalink($p->id); $comname = get_field('company_name', $p->id); }
くれぐれもここで「the_field();」などとしないように。その場で表示しようとするので表示がおかしくなります。
続いて、実際にレンダリングされる部分の修正。
1970行目あたりになるかと思います。
$content = '<li' . ( ( $this->current_post_id == $p->id ) ? ' class="current"' : '' ) . '>' . $thumb . '<a ' . ( ( $this->current_post_id == $p->id ) ? '' : 'href="' . $permalink . '"' ) . ' title="' . esc_attr($title) . '" class="wpp-post-title" target="' . $this->user_settings['tools']['link']['target'] . '">' . $title_sub . '</a><span style="color:#444; font-size:0.7rem;"> - ' . $comname . '</span>' . $excerpt . $_stats . $rating . "</li>\n";
上の「 – ‘ . $comname . ‘」の部分を追記しています。
修正が完了するとこんな感じ。
最初に言った通り、プラグインはアップデートしたら上書きされるので注意してください。
いつも読んでくれてありがとね!