Facebook Twitter RSS
ホーム ホームページ制作会社WEB企画 ウェブ企画ラボ MovableType MT4で「Can’t call method “execute” on an undefined value」というエラーメッセージが出た時の対処法

MT4で「Can’t call method “execute” on an undefined value」というエラーメッセージが出た時の対処法

この記事のタイトルとURLをコピーする
MT4で「Can’t call method “execute” on an undefined value」というエラーメッセージが出た時の対処法
https://webkikaku.co.jp/blog/mt/cantcallmethod/
facebook twitter hatena Pocket


この間、MT4の再構築中に、こんなメッセージが。

Can’t call method "execute" on an undefined value
(Can’t call method "execute" on an undefined value)

で、いろいろと調べた結果、
<MTEntries lastn="0">みたいなことをしていたり、
プラグインの「PageBute」を使用していて、
管理画面で記事表示数を0(無制限)に設定していたりすると、
1000記事以上出した時に、再構築の処理に困ってこんなエラーメッセージを吐き出すらしい。

一度に大量の記事を処理させるとダメなんですね。
というわけで、再構築する記事を分割で処理させることで解決します。

(※PageBute使用中)

<MTPageContents count="3">
<MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
</MTEntries>
</MTPageContents>

こういうところを、、、

<MTPageContents count="3">
<mtSetVarBlock name="ent_count"><$MTBlogEntryCount$></mtSetVarBlock>
<mt:for var="arc_loop" from="0" to=$ent_count increment="200">
<MTEntries sort_order="descend" lastn="200" offset=$arc_loop>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
</MTEntries>
</mt:for>
<$MTPageSeparator$>
</MTPageContents>

こうすればOK!

increment=”200″、lastn=”200″ってところの数字を変えると、
一度に処理させる記事数を変えることができます。
(500とかでも大丈夫みたい!)

なんだ!楽勝じゃん!

と思ったんですが、インデックスや、アーカイブを再構築する分には問題ないのですが、
全体を再構築すると、やはりCan’t call method &quot;execute&quot; on an undefined valueというエラーメッセージが・・・。

そこでエラーメッセージの出ていた、「sitemap.xml」を見なおしてみると、

<MTEntries lastn="$blogentrycount">

こんな記述怪しいを発見!
この記述をこんな感じにしてみると・・・

(※修正前)

<MTEntries lastn="$blogentrycount">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
<priority>1.0</priority>
</url>
</MTEntries>

(※修正後)

<MTSetVarBlock name="blogentrycount"><$MTBlogEntryCount$></MTSetVarBlock>
<mtSetVarBlock name="ent_count"><$MTBlogEntryCount$></mtSetVarBlock>
<mt:for var="arc_loop" from="0" to=$ent_count increment="200">
<MTEntries sort_order="descend" lastn="200" offset=$arc_loop>
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$></lastmod>
<priority>1.0</priority>
</url>
</MTEntries>
</mt:for>

はい、直った!

同じようなGoogleサイトマップの記述をしている方はハマっているのではないでしょうか。。

この記事のタイトルとURLをコピーする
MT4で「Can’t call method “execute” on an undefined value」というエラーメッセージが出た時の対処法
https://webkikaku.co.jp/blog/mt/cantcallmethod/
facebook twitter hatena Pocket

東京・名古屋を中心に、中小企業に特化したホームページ制作会社。マーケットやビジネスモデルに合わせ一社一社に合わせたウェブ制作・リニューアルのご提案しています。
1000サイト以上のウェブマーケティング支援で獲得したノウハウで、リニューアル後に過去最高の成果を生み出したお取引先は多数。勘ではなくロジックに基づいたホームページ制作と柔軟な対応力で多数のお客様にご評価頂いております。

どのようなお悩みでも構いません。ホームページを有効的に活用できていないと考えているご担当者の方、まずは一度弊社にご相談くださいませ。

ご提案依頼・ご相談はこちら
公式facebook、twitterから情報を受けとる
いいね!する フォローする
前のページ
次のページ
ページトップ