[WordPress]サブカテゴリと単一記事のパーマリンクを混在させる設定
2010.09 27

パーマリンクの設定でポピュラーな設定は/%category%/%postname%/ですが、この場合、サブカテゴリが存在すると投稿スラッグがサブカテゴリを表すのか、投稿名を表すのか区別がつかないので、とあるカテゴリの単一 [...]

パーマリンクの設定でポピュラーな設定は/%category%/%postname%/ですが、この場合、サブカテゴリが存在すると投稿スラッグがサブカテゴリを表すのか、投稿名を表すのか区別がつかないので、とあるカテゴリの単一記事を表示しようとすると、404となってしまいます。

かといって、/%category%/だけを指定すると、アーカイブページでタイトルにパーマリンクを反映させると、単一記事の表示ができなくなります。そこで、以下の方法としました。

/%category%/%post_id%/

記事の運用方法にもよりますが、投稿スラッグを使用しない運用であれば上記の設定でサブカテゴリと単一記事のパーマリンクが混在させられます。もっと良い方法があれば、どなたかご教授いただきたく・・・。短縮URL使えば、見てる側は気にならないことですが、WordPressのテーマカスタマイズをしてる側は重要な問題となります。

関連記事

この記事へのコメント

[WordPress]抜粋(excerpt)を使わずにエントリの途中まで表示する
2010.09 10

通常のsubstr()を使用するとバイト指定になるため、マルチバイト対応のmb_substr()を使うことになります。 上記サンプルの場合は、先頭から56文字を抽出して表示し、その文章にリンクさせています。指定した文字数 [...]

通常のsubstr()を使用するとバイト指定になるため、マルチバイト対応のmb_substr()を使うことになります。

<p><a href="<?php the_permalink(); ?>"><?php echo mb_substr(get_the_content(), 0, 56); ?>...more</a></p>

上記サンプルの場合は、先頭から56文字を抽出して表示し、その文章にリンクさせています。指定した文字数より短い文章の場合は、文章の最後まで表示されることになります。文字数をカウントする場合は、マルチバイト対応のmb_strlen()を使用することになります。

関連記事

この記事へのコメント

[WordPress]ページスラッグを取得する
2010.09 02

投稿、ページ作成時にURIを指定して、それを利用してCSS切り替えやclass指定、画像表示の制御をしたい時に使うのでメモ。 1: <?php if(have_posts()): while(have_posts( [...]

投稿、ページ作成時にURIを指定して、それを利用してCSS切り替えやclass指定、画像表示の制御をしたい時に使うのでメモ。

   1:  <?php if(have_posts()): while(have_posts()): the_post(); ?>
   2:  <?php $slug = get_page_uri(get_the_ID()); ?>
   3:  ...
   4:  <?php endwhile; endif; ?>

固定ページのスラッグを取得したい場合は、以下の方法でも可能。

   1:  <?php $page = get_page(get_the_ID()); ?>
   2:  <?php $slug = $page->post_name;?>

階層ページの場合、1つ目の方法だと「親のページ名/このページ名」みたく取得されるので、配列化して任意の要素だけを取り出すという方法も考えられるが、今表示しているページのスラッグを取得したい場合は、2つ目の方法で十分だと思われる。

関連記事

この記事へのコメント

WordPressで認証ページを作成する
2010.08 24

特定のページのみ(この場合は固定ページ)に認証を設ける方法についてです。 ここでの例はページテンプレートを作成し、このページテンプレートしたページへアクセスした場合、ログイン済みならそのまま表示、未ログインであればWor [...]

特定のページのみ(この場合は固定ページ)に認証を設ける方法についてです。 ここでの例はページテンプレートを作成し、このページテンプレートしたページへアクセスした場合、ログイン済みならそのまま表示、未ログインであればWordPressのログインページへリダイレクトします。なお、ログイン後はアクセスしたページへリダイレクトされます。

   1:  <?php
   2:  /**
   3:   * Template Name: 認証つきページ
   4:   */
   5:  if(!is_user_logged_in()) auth_redirect();
   6:  get_header();
   7:  
   8:  ?>

ポイントをあげるとすれば、wp_header()の前に認証処理を記述することです。

関連記事

この記事へのコメント

PDO For WordPressインストールでハマる
2009.03 23

レンタルサーバにWordPressをインストールというのはよくある話だけど、 SQLiteで動かそうとしたら、予想外に大ハマり・・・ というわけで、作業メモ。 環境: PHP 5.1.6 WordPress 5.7.1 [...]

レンタルサーバにWordPressをインストールというのはよくある話だけど、
SQLiteで動かそうとしたら、予想外に大ハマり・・・

というわけで、作業メモ。

環境:
PHP 5.1.6
WordPress 5.7.1
PDO For WordPress 1.0.2

こちらを参考にさせてもらいつつ作業するも、なぜか画面が真っ白。
結局、PDO For WordPressのソースをさらに追ってみる。

こんな長時間のprintデバッグとか久し振り。
で、原因はここ。

line 206 on wp-content/pdo/driver_sqlite/pdo_sqlite_driver_create.php

//need this line to comment out.
//$this->_errors[] = preg_last_error();

preg_last_error() >= PHP 5.2.0
というわけで、5.1で未対応のメソッドを呼び出していたためにDBの初期化で停止していた模様。
ものすごい時間かけたわりに作業が1行いじっただけとかよくある話ですけどね。

関連記事

この記事へのコメント

作者について

青森県内でソフトウェア・システム開発を行うフリーランスのプログラマー。元々は集中監視システム開発に従事。現在はウェブサイト製作・オンラインシステムの開発案件を中心に、プログラミングのスキルトレーニングや講演も行う。

TEL 0172-55-7030  FAX 0172-55-7031
10:00 - 18:00 土日祝休

恐れ入りますが、お急ぎの場合を除いて、メールにてお問い合わせください。