サポート » 使い方全般 » スラッグ名の取得時に引用符をつけない方法

  • 解決済 imanishi

    (@imanishi)


    はじめまして、行き詰ってしまい、質問させていただきます。

    content-archive.php
    <?php echo esc_attr($cat_info->slug); ?>

    funchions.php

    //カテゴリー情報を取得する
    function apt_category_info($tax='category'){
    	global $post;
    	$cat = get_the_terms($post->ID, $tax);
    	$obj = new stdClass;
    	if($cat){
    		$cat = array_shift($cat);
    		$obj->name = $cat->name;
    		$obj->slug = $cat->slug;
    	}else {
    	$obj->name = '';
    	$obj->slug = '';
    	}
    	return $obj;
    }

    と設定しています。

    一応スラッグ名は取得できるのですが、

    “ スラッグ名  ”

    のように引用符が付いてしまいます。
    引用符をなくすためにはどのようにすればよいでしょうか。

    使用理由としまして、
    <img src=”http://www.xxxxxx.jp/images/スラッグ名.png”&gt;
    のような形にしたいと考えております。
    宜しくお願い致します。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • テーマ Twenty Twelve の functions.php と single.php に書き込んで試してみましたが、引用符は付きませんでした。お使いのテーマやプラグインが影響しているのかもしれないですね。

    トピック投稿者 imanishi

    (@imanishi)

    gblsm様
    検証いただきありがとうございます。
    現在は自作テーマにてとてもシンプルな構造となっております。
    function.php(全文)

    <?php
    
    //カスタムメニュー
    register_nav_menus(
    	array(
    		'place_pc_global' => 'PCグローバル',
    		'place_pc_utility' => 'PCユーティリティ',
    		'place_sp_global' => 'SPグローバル',
    		'place_sp_utility' => 'SPユーティリティ',
    	)
    );
    
    //カテゴリー情報を取得する
    function apt_category_info($tax='category'){
    	global $post;
    	$cat = get_the_terms($post->ID, $tax);
    	$obj = new stdClass;
    	if($cat){
    		$cat = array_shift($cat);
    		$obj->name = $cat->name;
    		$obj->slug = $cat->slug;
    	}else {
    	$obj->name = '';
    	$obj->slug = '';
    	}
    	return $obj;
    }

    content-archive.php(全文)

    <?php
    	$cat_info = apt_category_info();
    	?>
    
    <?php echo esc_attr($cat_info->slug); ?>

    また、プラグインに関してもWP site ManagerとAkismetしか利用しておらず、
    どちらも停止してみましたが、症状は同じです。その他、原因の可能性などありませんでしょうか。
    宜しくお願い致します。

    トピック投稿者 imanishi

    (@imanishi)

    あまり変わりませんがこちらの記述でも同様に引用符(””)が付いてしまいます。

    content-archive.php

    <?php
    	$category = get_the_category();
    	$cat_id   = $category[0]->cat_ID;
    	$cat_name = $category[0]->cat_name;
    	$cat_slug = $category[0]->category_nicename;
    ?>
    
    <?php echo $cat_slug; ?>

    wprdpressは最新版です。

    二点、確認させてください。

    カテゴリーのスラッグではない文字列、例えばカテゴリーの名前 ( cat_name ) や、投稿のスラッグ (投稿オブジェクトの post_name ) は引用符が付かないんですよね。

    管理画面 » 投稿 » カテゴリー » カテゴリーの編集 で見て、スラッグそのものに引用符は入っていませんね。

    トピック投稿者 imanishi

    (@imanishi)

    確認したところその他の場合も引用符がつきました。

    <?php $cat = get_the_category(); ?>
    <?php $cat = $cat[0]; ?>
    <?php echo get_cat_name($cat->term_id); ?>

    このように入力すると
    “カテゴリ名”
    が出力されます。
    日付も引用符がはいります。


    2015.05.01

    のような形です。

    管理画面を確認したところ、異常はありませんでした。

    archive.phpにて

    <?php single_cat_title(); ?>

    も引用符がついてしまいます。

    下記を実行して出力を見てください。

    <pre>
    <?php $cat = get_the_category(); var_dump( $cat[0] ); ?>
    </pre>

    私のところでは次のように出力されますが、imanishi さんはどうでしょう?

    object(stdClass)#1970 (17) {
      ["term_id"]=>
      &int(1)
      ["name"]=>
      &string(9) "未分類"
      ["slug"]=>
      &string(27) "%e6%9c%aa%e5%88%86%e9%a1%9e”
    
    中略
    
      ["cat_name"]=>
      &string(9) "未分類"
      ["category_nicename"]=>
      &string(27) "%e6%9c%aa%e5%88%86%e9%a1%9e"
      ["category_parent"]=>
      &int(0)
    }

    ここで付いている引用符は var_dump が付けたもので、実際のカテゴリー名やスラッグには付いていません。

    トピック投稿者 imanishi

    (@imanishi)

    glbsm様
    検証いただき申し訳ないです。ありがとうございます。
    下記のように出力されました。
    宜しくお願い致します。

    object(stdClass)#1670 (17) {
      ["term_id"]=>
      &int(2)
      ["name"]=>
      &string(9) "写真"
      ["slug"]=>
      &string(9) "photo"
      ["term_group"]=>
      int(0)
      ["term_taxonomy_id"]=>
      int(2)
      ["taxonomy"]=>
      string(8) "category"
      ["description"]=>
      &string(0) ""
      ["parent"]=>
      &int(0)
      ["count"]=>
      &int(3)
      ["object_id"]=>
      int(72)
      ["filter"]=>
      string(3) "raw"
      ["cat_ID"]=>
      &int(2)
      ["category_count"]=>
      &int(3)
      ["category_description"]=>
      &string(0) ""
      ["cat_name"]=>
      &string(9) "写真"
      ["category_nicename"]=>
      &string(9) "photo"
      ["category_parent"]=>
      &int(0)
    }

    トピック投稿者 imanishi

    (@imanishi)

    ただしく出力されているので、よくわからないため、ちょっとはじめから組みなおしてみます。
    解決しましたら投稿させていただきます。
    宜しくお願い致します。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「スラッグ名の取得時に引用符をつけない方法」には新たに返信することはできません。