这是我的第一个问题。
我在 functions.php 文件中的主题中设置了自定义分类法。
我为自定义分类法(类别)添加了一些额外的元字段,也是通过 functions.php 文件设置的。
我正在使用 update_option() 函数。
这是将选项保存到数据库的部分:
<?php
// save extra category extra fields hook
add_action ( 'edited_artists', 'save_extra_category_fileds');
// save extra category extra fields callback function
function save_extra_category_fileds( $term_id ) {
if ( isset( $_POST['Cat_meta'] ) ) {
$t_id = $term_id;
$cat_meta = get_option( "category_$t_id");
$cat_keys = array_keys($_POST['Cat_meta']);
foreach ($cat_keys as $key){
if (isset($_POST['Cat_meta'][$key])){
$cat_meta[$key] = $_POST['Cat_meta'][$key];
}
}
//save the option array
update_option( "category_$t_id", $cat_meta );
}
}
?>
在我的模板文件中,我这样调用它们:
<?php
$terms = wp_get_post_terms( $post->ID, 'artists');
foreach ($terms as $term){
$term_id = $term->term_id;
$term_name = $term->name;
$term_taxonomy_id = $term->term_taxonomy_id;
$term_slug = $term->slug;
//do you term meta stuff here
//print_r($term);
}
?>
这是我使用它们的地方(除其他外),它当然在 LOOP 内:
<div class="single-sculpture-artist-info">
<?php
$category_meta = get_option( "category_$term_taxonomy_id");
?>
<a href="<?php echo get_site_url(); ?>/artists/<?php echo $term_slug; ?>">
<img src="<?php echo $category_meta['artists_photo'] ?>" alt="<?php echo $term_name; ?>">
</a>
<h3>
<a href="<?php echo get_site_url(); ?>/artists/<?php echo $term_slug; ?>"><?php echo $term_name; ?></a>
</h3>
<p><?php echo $category_meta['artists_city_province'] ?></p>
<p><?php echo $category_meta['artists_bio_excerpt'] ?></p>
</div>
所有这些代码都能完美运行。
我开始添加内容,但突然开始失败。我认为它是在我尝试使用我在开发整个系统时使用的类别(分类法)名称之一时开始的(我猜它被缓存在某处或某处),但后来我尝试使用不同的名称,并添加一些其他以前没有的,它也失败了。我最好的猜测是选项表以某种方式重载了数据(限制或其他)。
这可能吗?我没有太多,该分类法中的 56 个工作职位和 34 个类别(分类法术语)。
我尽我最大的努力去解决这个问题,但找不到问题所在。
当我再插入 2 或 3 个帖子时,它开始乱七八糟。所以,这:
<a href="<?php echo get_site_url(); ?>/artists/<?php echo $term_slug; ?>">
输出正确的链接,但是,这个:
<img src="<?php echo $category_meta['artists_photo'] ?>"
没有。它输出来自其他类别(来自同一 CPT)的数据。我可以根据要求提供更多信息。
最佳答案
没有回答你的问题,但你知道 WP 4.2+ 发生了很大的变化,他们将拆分分类术语,这样如果分类术语匹配,它们就不会共享相同的术语 ID。
请查看下面的链接,了解有关如何解决此问题的一些详细信息
https://make.wordpress.org/core/2015/02/16/taxonomy-term-splitting-in-4-2-a-developer-guide/
https://developer.wordpress.org/plugins/taxonomy/working-with-split-terms-in-wp-4-2/
关于php - get_option 间歇性地使 WordPress 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30039791/