質問
ヘルプセンターから記事を削除してしまいました。削除済みのヘルプセンター記事からトラフィックをリダイレクトできますか?
回答
はい、このようなトラフィックのソースに関わらず、URLにアクセスしようとするユーザーを、より役立つページに自動的にリダイレクトすることが可能です。
ヘルプセンターのカスタムJavaScriptファイルにアクセスする
これらのソリューションを実装するには、ヘルプセンターのJavaScriptファイルにアクセスします。
- Zendesk Supportに管理者としてサインインします。一番上のメニューバーで、Zendesk製品のアイコン()をクリックし、「Guide」を選択します。
- Zendesk Guideの右上隅にある「Guide管理者」を選択します。
- サイドバーにあるデザインをカスタマイズアイコン()をクリックします。
- テーマに表示されている「カスタマイズ」をクリックします。
- 「コードを編集」をクリックします。
- script.jsファイルをクリックします。
一般的なリダイレクトワークフローの実装方法の例については、以下のセクションを参照してください。
- 例1:削除済みの記事を新しい記事にリダイレクトする
- 例2:未翻訳の記事を既存の言語にリダイレクトする
- 例3:削除済みの記事を特定のページにリダイレクトする
- 例4:特定のページにリダイレクトされた記事(またはコミュニティ投稿)を一般化または指定する
例1:削除済みの記事を新しい記事にリダイレクトする
これはヘルプセンターに古い削除済みのページがある例です。各ページはこれからリダイレクトする新規ページに対応しています。JavaScriptファイルの最初の数行に、次のように表示されます。
$(document).ready(function() {
window.addEventListener("DOMContentLoaded", () => {
}
その列のすぐ上に次のコードを入力します。
var oldIds = ["217352077", "216552968"];
var newIds = ["216553098", "216552958"];
for (var i = 0; i < oldIds.length; i++){
if (window.location.href.indexOf( oldIds[i]) > -1) {
window.location.href = 'https://YOURSUBDOMAIN. zendesk.com/hc/en-us/articles/ ' + newIds[i];
}
}
保存する前に、古い記事IDと新しい記事IDをリストするコードの一部を編集します。
var oldIds = ["217352077", "216552968"];
var newIds = ["216553098", "216552958"];
上記の記事IDの代わりに記事IDを追加してください。記事IDを見つけるには、ブラウザで記事を表示します。URLは次のとおりです。
https://[YOURSUBDOMIAN].zendesk.com/hc/en-us/articles/203664386-Help-Center-guide-for-agents-and-end-users
上記のURLでは、記事IDは203664386
です。
この解決策で正しくリダイレクトするには、古い記事IDと新しい記事IDが配列内で同じ位置にある必要があります。この場合、URLに「217352077
」が含まれている記事は「216553098
」にリダイレクトされます。「216552968
」が含まれている記事は「216552958
」にリダイレクトされます。
記事IDを配列内で指定する場合は、各IDを引用符("")で囲み、カンマで区切ってください。次のようになります。
var oldIds = ["217352077", "216552968", "216552902"];
var newIds = ["216553098", "216552958", "216552944"];
次に、この行のURLを編集します。
window.location.href = 'https://YOURSUBDOMAIN. zendesk.com/hc/en-us/articles/ ' + newIds[i];
Zendeskのサブドメインを使用、またはURLに白いラベルが使われている場合はヘルプセンターで通常表示されているとおり、ヘルプセンターURL全体を使用するよう確認してください。列の最後を削除しないでください:"+ newIds[i];"
。こうして、新しい記事IDがURLに送信されます。スクリプトなしではコードは機能しません。
例2:未翻訳の記事を既存の言語にリダイレクトする
以下は、ヘルプセンターコンテンツが複数言語ある場合の例です。全コンテンツは英語、一部がフランス語とドイツ語である場合です。ユーザーがフランス語またはドイツ語でこれらの記事にアクセスしようとする場合、エラーページが返されます。このコードを使えば、訪問者をエラーページから既存の英語記事へリダイレクトできます。
var notDefaultLanguage = window.location.href.indexOf('/en-us/') == -1;
var isArticle = window.location.href.indexOf('/articles/') > -1;
var isErrorPage = $(".error-page").length > 0;
if ( isArticle && notDefaultLanguage && isErrorPage ) {
var newURL = window.location.href.replace(/(.*\/hc\/)([\w-]+)(\/.*)/, "$1en-us$3");
window.location.href = newURL;
}
この例では、カスタマイズが必要なのはほんのわずかです。ヘルプセンターのデフォルトの言語が英語ではない場合、言語を置き換えてください。このコードでは、「en-us
」が次の2つの場所に表示されます:
var notDefaultLanguage = window.location.href.indexOf('/en-us/') == -1;
および
var newURL = window.location.href.replace(/(.*\/hc\/)([\w-]+)(\/.*)/, "$1en-us$3");
この2列の「en-us
」をデフォルトの言語コードに変更します。デフォルトの言語コードは、メイン記事のURL内に含まれています。たとえば、フランス語のヘルプセンターのURLは次の例のようになります。
https://[YOURSUBDOMAIN].zendesk.com/hc/fr/articles/214943538
例3:削除済みの記事を特定のページにリダイレクトする
この例では、ヘルプセンターのすべての削除済み記事(コミュニティ内の投稿を除く)を特定の記事にリダイレクトする方法について説明します。
JavaScriptファイルの最初の数行に、次のように表示されます。
$(document).ready(function() {
window.addEventListener("DOMContentLoaded", () => {
}
ここでは、次のコードを列のすぐ下に配置します。重要:この例において列の上に配置すると機能しません。
if ( window.location.href.indexOf('articles') > -1 && $(".not-found").length > 0 ) {
window.location.href = 'https://[YOURSUBDOMAIN].zendesk.com/hc/en-us/articles/216553068-error-redirect';
}
このスクリプトで、URLをヘルプセンターのリダイレクト先の記事のURLに置き換えます。
この解決策は、「.not-found
」クラスがエラーページに存在する場合に限り機能します。
「JS」リンクが表示されるグレーのバー上にある「ホームページ」リンクをクリックしますドロップダウンから「エラーページ」を選択します。エラーページには、コードで始まる領域があります {{#is error 'not_found'}}
。次の画面のようなポップアップです。
{{#is error 'not_found'}}
<h2>{{t 'nonexistent_page'}}</h2>
<p>{{t 'mistyped_address_or_moved_page'}}</p>
{{/is}}
h2要素または'not_found' #is
タグ内の任意の要素に新しいクラスを追加します。以下のようになります。
<h2 class="not-found">{{t 'nonexistent_page'}}</h2>
例4:特定のページにリダイレクトされた記事(またはコミュニティ投稿)を一般化または指定する
if文をカスタマイズして、このソリューションをさらに具体化したり一般化します。たとえば、削除済み記事またはコミュニティ投稿からリダイレクトするには、if文を次のように変更してください。
if ( $(".not-found").length > 0 )
または、タイトルに「buttermilk
」という単語がある削除記事のみリダイレクトするには、if
文を次のように変更してください。
if ( window.location.href.indexOf('buttermilk') > -1 && $(".not-found").length > 0 )
最初の解決策とは異なり、この解決策では最初にエラーページが表示されてから、新しいページにリダイレクトします。これは、JavaScriptを使用して、最初に読み込む必要のあるページ内の要素を検索するためです。