Welcartに標準で実装されている関連商品の表示をしようとしたらPHPエラーが出たので、それの解決方法について。
ちなみにWelcartの関連商品は、表示したい商品の商品コードをタグ付けすると表示されます。
必要な関数が揃っていないとPHPエラーが出る
Welcartに標準で実装されている関連商品の表示関数usces_assistance_item()
は追加で必要な関数があり、それが無ければエラーが発生してしまいます。僕は以下のPHPエラーが吐出されました。
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'welcart_assistance_excerpt_length' not found or invalid function name in (ローカルのパス)\wp-includes\plugin.php on line 192
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'welcart_assistance_excerpt_mblength' not found or invalid function name in (ローカルのパス)\wp-includes\plugin.php on line 192
それで、このエラーを直すのに必要な関数がデフォルトテーマのfunctions.phpに記述されています。(多分子テーマで作成されることを前提とした設計なのだと思います)
ので、その関数をコピーして使用中のテーマに貼り付けると上記のエラーが直ります。
必要な関数
以下の関数群を使用中のテーマのfunctions.phpに貼り付けて下さい。
//関連商品表示に必要な関数
if ( ! function_exists( 'welcart_assistance_excerpt_length' ) ) {
function welcart_assistance_excerpt_length( $length ) {
return 10;
}
}
if ( ! function_exists( 'welcart_assistance_excerpt_mblength' ) ) {
function welcart_assistance_excerpt_mblength( $length ) {
return 40;
}
}
if ( ! function_exists( 'welcart_excerpt_length' ) ) {
function welcart_excerpt_length( $length ) {
return 40;
}
}
add_filter( 'excerpt_length', 'welcart_excerpt_length' );
if ( ! function_exists( 'welcart_excerpt_mblength' ) ) {
function welcart_excerpt_mblength( $length ) {
return 110;
}
}
add_filter( 'excerpt_mblength', 'welcart_excerpt_mblength' );
if ( ! function_exists( 'welcart_continue_reading_link' ) ) {
function welcart_continue_reading_link() {
return ' <a href="'. get_permalink() . '">' . __( 'Continue reading <span class="meta-nav">→</span>', 'uscestheme' ) . '</a>';
}
}
それぞれの関数は抜粋文の文字数を制限する関数、そしてフィルターフックです。(一番最後の関数はもしかしたら必要無いかも?)
この解決方法はWelcartの公式フォーラムが参考になりました。
参考: Welcart コミュニティー|ECサイト構築プラグイン » トピック: [解決済み] 関連商品を出力されている所でエラーがでる
あと、この関連商品の表示の説明文を削除したり在庫表示をするカスタマイズを別記事にまとめてみました。