0

这有点让人头疼,我不知道该怎么做,或者即使这将是最好的方法。

然而,这是我的场景:

我需要将特定颜色应用于 wordpress 页面。我计划创建一个元框,允许用户选择 5 种颜色中的一种。现在这有点棘手,我希望这个颜色选择也适用于所有子页面。

有没有办法检查父页面是否选择了特定的元框选项?

4

1 回答 1

0

你可以用一些相当标准的逻辑来做到这一点:

  • 检查是否设置了 post_meta 值
  • 检查这是否是孩子,获取父 ID,检查是否设置了 post_meta 值

下面是一些代码来展示它是如何工作的(在循环内):

if ( get_post_meta($post->ID, 'colour', TRUE) ) {
    $colour = get_post_meta($post->ID, 'colour', TRUE);
} elseif ( $post->post_parent && get_post_meta($post->post_parent, 'colour', TRUE) ) {
    $colour = get_post_meta($post->post_parent, 'colour', TRUE);
} else {
    $colour = '#fff'; // could put a default value here
}
//do something with $colour variable

当您在循环之外时,您可以使用它get_queried_object()来访问 post 对象。IE:

$queried_object = get_queried_object();

if ( get_post_meta($queried_object->ID, 'colour', TRUE) ) {
    $colour = get_post_meta($queried_object->ID, 'colour', TRUE);
} elseif ( $queried_object->post_parent && get_post_meta($queried_object->post_parent, 'colour', TRUE) ) {
    $colour = get_post_meta($queried_object->post_parent, 'colour', TRUE);
} else {
    $colour = '#fff'; // could put a default value here
}
//do something with $colour variable
于 2013-05-25T04:00:03.083 回答