我知道下面的mysql查询生成了我希望在single中响应的确切结果。php:
SELECT meta_value
FROM `wp_taxonomymeta`
WHERE `taxonomy_id` =565
AND `meta_key` LIKE \'baseurl\'
首先,我需要能够使用$wpdb输出该结果,无论我尝试什么,我都无法让它工作。我的最后一次尝试:
<?php global $wpdb;
$toc = $wpdb->get_row("
SELECT meta_value
FROM `wp_taxonomymeta`
WHERE `taxonomy_id` =565
AND `meta_key` LIKE \'baseurl\'
");
echo $toc; ?>
产生以下错误:
可捕获的致命错误:stdClass类的对象无法转换为/wp-content/themes/new/single中的字符串。php第22行
第二这很重要。我用于taxonomy\\u id的值565仅用于测试。。。我需要插入以代替数字565的实际值可以显示为single。php使用:
<?php $term = get_term_by(\'id\', $termID, \'dataset\'); echo $term->term_id; ?>
作为参考,这样你就能明白我在做什么。。。我已经为一个分类法分配了一个自定义字段,并且正在尝试将该自定义字段的结果显示为单个。php。。。虽然我找到了一个插件(Ultimate CMS)可以帮我做到这一点,但它也选择在我的贴子屏幕顶部显示所有分类的过滤器。。。当分类法中有50000多行导致管理中的页面负载过大,而我找不到抑制它的方法时。
如果您对我的NOOB编码有任何帮助,我们将不胜感激!
谢谢
最合适的回答,由SO网友:Chris_O 整理而成
可捕获的致命错误:stdClass类的对象无法转换为/wp-content/themes/new/single中的字符串。php第22行
这是因为$wpdb->get_row
默认情况下,返回一个对象,不能回显对象。正在更改echo $toc
到echo $toc->meta_value
会给你你想要的结果。
您的另一个问题是,多个术语可能具有相同的term\\u id。您的自定义表应使用term\\u taxonomy\\u id,该id将始终是唯一的。
global $wpdb;
$term = get_term_by(\'id\', $termID, \'dataset\'); //Seems redundant does $term->term_id === $termID???
$query = $wpdb->prepare( "SELECT * FROM {$wpdb->taxonomymeta}
WHERE `taxonomy_id` = %d
AND `meta_key` LIKE \'baseurl\' ",
$term->term_id );
$toc = $wpdb->get_row( $query );
echo $toc->meta_value;