如何在Single.php中显示来自定制分类的定制字段?

时间:2013-02-03 作者:perdrix

我知道下面的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编码有任何帮助,我们将不胜感激!

谢谢

1 个回复
最合适的回答,由SO网友:Chris_O 整理而成

可捕获的致命错误:stdClass类的对象无法转换为/wp-content/themes/new/single中的字符串。php第22行

这是因为$wpdb->get_row 默认情况下,返回一个对象,不能回显对象。正在更改echo $tocecho $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;

结束