デコマガジン

【MovableType覚書】タグ設置とタグからの検索

【MovableType覚書】タグ設置とタグからの検索画像


タグベスト20表示・タグクリック検索設置

コンテンツタイプ

<mt:Tags top="20" sort_by="rank" type="content_type" content_type="お知らせ" field="タグ">
<a href="javascript:void(0)" onclick="location.href='<mt:CGIPath><mt:ContentDataSearchScript>?
search=<mt:TagName>&content_field=タグ:<mt:TagID>&IncludeBlogs=<mt:BlogID>&blog_id=<mt:BlogID>
&SearchContentTypes=お知らせ';return false;" rel="tag"><mt:TagName></a>
</mt:Tags>

記事

<mt:Tags top="20" sort_by="rank">
<a href="javascript:void(0)" onclick="location.href='<$mt:TagSearchLink encode_js="1"$>';return false;"
rel="tag"><$mt:TagName$></a>
</mt:Tags>

タグをmeta keywordsに設定

コンテンツタイプ

コンテンツタイプのコンテンツフィールドに glue=","はタグでも有効(公式には書いてなかったが・・・)

<mt:SetVarBlock name="keywordin"><mt:ContentField content_field="タグ" glue=","><mt:TagName>
</mt:ContentField></mt:SetVarBlock>

<meta name="keywords" content="<mt:Var name="keywordin">">

タグ出力は「コンテンツの検索結果」テンプレート

<body>
<script>
<mt:IfMoreResults>
function getResults(page) {
page = parseInt(page);
if (timer) window.clearTimeout(timer);
var xh = mtGetXmlHttp();
if (!xh) return false;
var res = results[page];
if (!res) return;
var url = res['next_url'];
if (!url) return;

xh.open('GET', url + '&format=js', true);
xh.onreadystatechange = function() {
if ( xh.readyState == 4 ) {
if ( xh.status && ( xh.status != 200 ) ) {
// error - ignore
} else {
try {
var page_results = eval("(" + xh.responseText + ")");
if ( page_results['error'] == null )
results[page + 1] = page_results['result'];
} catch (e) {
}
}
}
};
xh.send(null);
}

function swapContent(direction) {
if ( direction == undefined ) direction = 1;
var page_span = document.getElementById('current-page');
if (!page_span) return true;
var next_page = direction + parseInt(page_span.innerHTML);
var res = results[next_page];
if (!res) return true;
var content = res['content'];
if (!content) return true;
var div = document.getElementById('search-results-main');
if (!div) return true;
div.innerHTML = content;
timer = window.setTimeout("getResults(" + next_page + ")", 1*1000);
window.scroll(0, 0);
return false;
}
<mt:Else>
<mt:IfPreviousResults>
function swapContent(direction) {
return true;
}
</mt:IfPreviousResults>
</mt:IfMoreResults>
</script>

<$mt:Include module="2024_03_header_all" parent="1"$>

<main>


<h2 class="ttl-c1-ttl">お知らせ検索結果</h2>


<mt:SetVarTemplate id="cd_search_results" name="cd_search_results">
<mt:SearchResults>
<mt:SearchResultsHeader>
<section class="jisseki-list">
<h2 class="title-41">お知らせ検索:<mt:IfStraightSearch>「<$mt:SearchString$>」</mt:IfStraightSearch></h2>
<ul>
</mt:SearchResultsHeader>
<li><a href="<mt:ContentPermalink>">
<div><mt:ContentDate format="%Y年%m月%d日"></div>
<mt:ContentField content_field="カテゴリ"><div class="newsline2cat <mt:CategoryBasename>"><mt:CategoryLabel></div></mt:ContentField>
<p><mt:ContentField content_field="タイトル"><mt:ContentFieldValue></mt:ContentField> <i class="fas fa-chevron-circle-right"></i></p>
</div>
<figure style="background-image: url('<mt:ContentField content_field="一覧用画像">
<mt:AssetThumbnailURL width='300'><mt:Else><mt:ContentField content_field="本文">
<mt:Assets type='image' limit='1' sort_order='ascend'><$mt:AssetThumbnailURL width='300'$></mt:Assets>
</mt:ContentField></mt:ContentField>');
background-size: cover;"><img src="/images2/listimgtrans1.png"
alt="<mt:ContentField content_field="タイトル"><mt:ContentFieldValue></mt:ContentField>"/></figure>
<p class="newsline2title2"><mt:ContentField content_field="タイトル"><mt:ContentFieldValue></mt:ContentField></p>
</a></li>
<mt:SearchResultsFooter>
</ul>
<ul>
<mt:IfMoreResults>
<li><a rel="prev" href="<$mt:NextLink encode_html="1"$>" onclick="return swapContent();">過去のコンテンツ</a></li>
</mt:IfMoreResults>
<mt:IfPreviousResults>
<li><a rel="next" href="<$mt:PreviousLink encode_html="1"$>" onclick="return swapContent(-1);">新しいコンテンツ</a></li>
</mt:IfPreviousResults>
</ul>
</section>
</mt:SearchResultsFooter>
</mt:SearchResults>
</mt:SetVarTemplate>

<$mt:Var name="cd_search_results"$>

<mt:NoSearchResults>
<section>
<h1 class="search-results-header">
<MTIfStatic><mt:IfStraightSearch>
「<$mt:SearchString$>」と一致するもの
</mt:IfStraightSearch></MTIfStatic>
<mt:IfTagSearch>
タグ「<$mt:SearchString$>」が付けられているもの
</mt:IfTagSearch>
</h1>
<p>「<$mt:SearchString$>」と一致する結果は見つかりませんでした。</p>
</section>
</mt:NoSearchResults>

<mt:NoSearch>
<section>
<h1 class="search-results-header">例</h1>
<p>すべての単語が順序に関係なく検索されます。フレーズで検索したいときは引用符で囲んでください。</p>
<pre><code>"movable type"</code></pre>
<p>AND、OR、NOTを入れることで論理検索を行うこともできます。</p>
<pre><code>個人 OR 出版</code></pre>
<pre><code>個人 NOT 出版</code></pre>
</section>
</mt:NoSearch>

<mt:Ignore><!-- Used with the ajax search capability of the new search class --></mt:Ignore>
<mt:IfMoreResults>
<script type="text/javascript">
var div = document.getElementById('search-results');
var results = {
'<$mt:CurrentPage$>': {
'content': div.innerHTML,
'next_url': '<$mt:NextLink$>'
}
};
var timer = window.setTimeout("getResults(" + <$mt:CurrentPage$> + ")", 1*1000);
</script>
</mt:IfMoreResults>

記事一覧


ホームページ制作
について

デコジャパンの
サービス内容

ホームページの
実績紹介

デコマガジン
HP&PC