17-5 テンプレートでカスタムフィールド検索のページを作る

324ページ

<mt:GetQueryString name="search" setvar="search" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
<head>
    <mt:Include module="HTMLヘッダー" />
    <title><mt:BlogName encode_html="1" />: 検索結果</title>
</head>
<body id="<$mt:BlogThemeID$>" class="mt-search-results <mt:Var name="page_layout" />">
  <div id="container">
    <div id="container-inner">
      <$mt:Include module="バナーヘッダー"$>
      <div id="content">
        <div id="content-inner">
          <div id="alpha">
            <div id="alpha-inner">
              <div id="search-results">
                <h1 id="page-title" class="search-results-header">
                「<mt:GetVar name="search" />」と一致するもの
                </h1>
                <mt:BlogEntryCount setvar="count">
                <mt:Entries lastn="$count">
                  <mt:if tag="EntryRecommend" eq="$search">
                    <mt:Include module="ブログ記事の概要" hide_counts="1" />
                    <mt:SetVar name="flag" value="1" />
                  </mt:if>
                </mt:Entries>
                <mt:unless name="flag">
                  検索に一致するページはありませんでした。
                </mt:unless>
              </div>
            </div>
          </div>
          <mt:Include module="サイドバー" />
        </div>
      </div>
      <mt:Include module="バナーフッター" />
    </div>
  </div>
</body>
</html>

325ページ

手順④

<div class="widget-search widget">
  <h3 class="widget-header">検索</h3>
  <div class="widget-content">
    <form method="get" action="<mt:BlogURL />search.php">
      <input type="text" id="search" name="search" value="" />
      <input type="submit" accesskey="4" value="検索" />
    </form>
  </div>
</div>

326ページ

<div class="widget-search widget">
  <h3 class="widget-header">検索</h3>
  <div class="widget-content">
    <form method="get" action="<mt:BlogURL />search.php">
      <select id="search" name="search">
        <option value="★★★★★">★★★★★</option>
        <option value="★★★★">★★★★</option>
        <option value="★★★">★★★</option>
        <option value="★★">★★</option>
        <option value="★">★</option>
      </select>
      <input type="submit" accesskey="4" value="検索" />
    </form>
  </div>
</div>

「検索結果」インデックステンプレート

...前略...
<mt:Entries lastn="$count">
  <mt:if tag="EntryBody" like="$search">
    <mt:Include module="ブログ記事の概要" hide_counts="1" />
    ...後略...

「ブログ記事の概要」テンプレートモジュール

...前略...
<mt:If tag="EntryBody">
    <div class="asset-body">
  <mt:if name="search">
    <mt:SetVarBlock name="pattern">/(<mt:GetVar name="search">)/g</mt:SetVarBlock>
    <mt:EntryBody regex_replace="$pattern","<span style=\"font-weight:bold;color:#f00\">\$1</span>" />
  <mt:else>
    <$mt:EntryBody$>
  </mt:if>
    </div>
</mt:If>
...後略...

327ページ

<mt:GetQueryString name="search" setvar="search" />
<mt:GetQueryString name="offset" setvar="offset" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
<head>
    <mt:Include module="HTMLヘッダー" />
    <title><mt:BlogName encode_html="1" />: 検索結果</title>
</head>
<body id="<$mt:BlogThemeID$>" class="mt-search-results <mt:Var name="page_layout" />">
  <div id="container">
    <div id="container-inner">
      <$mt:Include module="バナーヘッダー"$>
      <div id="content">
        <div id="content-inner">
          <div id="alpha">
            <div id="alpha-inner">
              <div id="search-results">
                <h1 id="page-title" class="search-results-header">
                「<mt:GetVar name="search" />」と一致するもの
                </h1>
                <mt:SetVar name="results_per_page" value="10" />
                <mt:unless name="offset">
                  <mt:SetVar name="next_offset" value="$results_per_page" />
                <mt:else>
                  <mt:GetVar name="offset" op="+" value="$results_per_page" setvar="next_offset" />
                  <mt:GetVar name="offset" op="-" value="$results_per_page" setvar="previous_offset" />
                </mt:unless>
                <mt:SetVar name="per_page_counter" value="0" />
                <mt:BlogEntryCount setvar="count">
                <mt:Entries lastn="$count">
                  <mt:if name="per_page_counter" lt="$results_per_page">
                    <mt:if tag="EntryRecommend" eq="$search">
                      <mt:unless name="offset">
                        <mt:Include module="ブログ記事の概要" hide_counts="1" />
                        <mt:SetVar name="flag" value="1" />
                        <mt:SetVar name="per_page_counter" op="++" />
                      <mt:else>
                        <mt:SetVar name="offset" op="--" />
                      </mt:unless>
                    </mt:if>
                  </mt:if>
                </mt:Entries>
                <mt:unless name="flag">
                  検索に一致するページはありませんでした。
                </mt:unless>
              </div>
              <div class="content-nav">
                <mt:if name="previous_offset" ge="0">
                <a href="<mt:BlogURL />search.php?search=<mt:GetVar name="search" escape="url" />&amp;offset=<mt:GetVar name="previous_offset" />">前のページ</a>
                </mt:if>
                <mt:if name="per_page_counter" eq="$results_per_page">
                <a href="<mt:BlogURL />search.php?search=<mt:GetVar name="search" escape="url" />&amp;offset=<mt:GetVar name="next_offset" />">次のページ</a>
                </mt:if>
              </div>
            </div>
          </div>
          <mt:Include module="サイドバー" />
        </div>
      </div>
      <mt:Include module="バナーフッター" />
    </div>
  </div>
</body>
</html>

329ページ

日数指定

<mt:GetQueryString name="search" setvar="search" />
<mt:GetQueryString name="days" setvar="days" />
<mt:Entries days="$days">
  <mt:if tag="EntryFoo" eq="$search">
    <mt:Include module="ブログ記事の概要" hide_counts="1" />
  </mt:if>
</mt:Entries>

カテゴリ指定

<mt:GetQueryString name="search" setvar="search" />
<mt:GetQueryString name="category" setvar="category" />
<mt:Entries category="$category">
  <mt:if tag="EntryFoo" eq="$search">
    <mt:Include module="ブログ記事の概要" hide_counts="1" />
  </mt:if>
</mt:Entries>

複数カスタムフィールドの指定

<mt:GetQueryString name="foo" setvar="foo">
<mt:GetQueryString name="bar" setvar="bar">
<mt:BlogEntryCount setvar="count">
<mt:Entries lastn="$count">
  <mt:if tag="EntryFoo" eq="$foo">
    <mt:if tag="EntryBar" eq="$bar">
      <mt:Include module="ブログ記事の概要" hide_counts="1" />
    </mt:if>
  </mt:if>
</mt:Entries>

330ページ

複数ブログの指定

<mt:GetQueryString name="search" setvar="search" />
<mt:Blogs include_blogs="1,2,3">
  <mt:BlogEntryCount setvar="count">
  <mt:Entries lastn="$count">
    <mt:if tag="EntryFoo" eq="$search">
      <mt:Include module="ブログ記事の概要" hide_counts="1" />
    </mt:if>
  </mt:Entries>
</mt:Blogs>
<mt:GetQueryString name="search" setvar="search" />
<mt:GetQueryString name="blog_id" setvar="blog_id" />
<mt:Blogs include_blogs="$blog_id">
  <mt:BlogEntryCount setvar="count">
  <mt:Entries lastn="$count">
    <mt:if tag="EntryFoo" eq="$search">
      <mt:Include module="ブログ記事の概要" hide_counts="1" />
    </mt:if>
  </mt:Entries>
</mt:Blogs>

このアーカイブについて

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。