私はそれが簡単だと確信していますが、どこでも情報を読んで読んでいます。私はノブだと知っていますが、今は何を試していいのか分かりません。phpのdbから得られた値をシリアル化しない
global $post;
if (!is_page()) {$category_ID = get_post_meta($post->ID, '_category_permalink', true);}
else {$category_ID = '';}
$category_parent = pa_category_top_parent_id ($category_ID);
事がデータベースの「_category_permalink」の値は、常に整数ではないということです。私のウェブサイトのテーマのPHPファイルの一つ上の行があり
は、それはこのようなものです私はそれが必要です。時々値がシリアル化された値であり、このような何か:
a:1:{s:8:"category";s:2:"23";}
だから、$ CATEGORY_IDは時々23(または任意の他の数)であり、他の回である:1:{S:8:「カテゴリ」。 s:2: "23";}(その他の値も)。
私がする必要があるのは、その行が整数であるかどうかを調べることができる値であるかどうかです。その場合、私はそれを直列化して対応する整数に変換し、その直列化された値の "カテゴリ"セクション(私の例では、23)に格納する必要があるので、$ category_IDは常に整数に等しくなりますシリアル化された値ではありません。
どうすればいいですか?事前に
感謝:)
EDIT & UPDATE:
これが解決されています$category_ID
がis_number()
を使用して数値の場合、コードはこの
if (!is_page()) { $category_ID = get_post_meta($post->ID, '_category_permalink', true); } else {$category_ID = '';}
global $wpdb;
$catmeta = $wpdb->get_row("SELECT post_id, meta_key, meta_value FROM MYDATABASENAMEHERE WHERE post_id = '".$post->ID."' AND meta_key LIKE '_category_permalink'",ARRAY_A);
if(strpos($catmeta['meta_value'],':{')!==false){
$catmeta = unserialize($catmeta['meta_value']);
$catmeta['meta_value'] = $catmeta['category'];
}
$category_parent = pa_category_top_parent_id ($catmeta['meta_value']);
をあなたは値をチェックすることができます。 –