-4

我正在尝试使切换功能起作用,但由于我只有基本的 PHP 知识,我只是不知道如何让我<div>的 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''“让我的 100

我的问题不是(jQuery)切换,而只是用于从数据库中获取 Wordpress 自定义帖子类型特定内容的 HTML/PHP 组合。这适用于我的代码,但现在我根本不知道如何将输出包装到我的 jQuery 函数所需的 div 中。

所以首先:

按 post_type 打印出所有 meta_values。在这种情况下,post_type = 艺术家,meta_value = 艺术家国家。

我打印了属于特定国家的所有艺术家,如下所示:

Argentina (artists_country)
 - Capitan Tifus (artist title)
 - Kapanga (artist title)

这是我的div问题。我需要对属于一个国家的艺术家头衔进行分组(使用'main1'),但不对国家本身进行分组。

<div class="group">
<h3><a class="trigger">Country 1</a></h3>
<div id='main' class='side-toggle'>
   <h4 class="date"><a href="<?php the_permalink(); ?> rel="fancybox" title="the title">The Artist 1 of that country</a></h4>
   <h4 class="date"><a href="<?php the_permalink(); ?> rel="fancybox" title="the title">The Artist 2 of that country</a></h4>
</div><!--main--></div><!--group-->

<div class="group">
<h3><a class="trigger">Country 2</a></h3>
<div id='main1' class='side-toggle'>
   <h4 class="date"><a href="<?php the_permalink(); ?> rel="fancybox" title="the title">The Artist 1 of country 2</a></h4>
   <h4 class="date"><a href="<?php the_permalink(); ?> rel="fancybox" title="the title">The Artist 2 of country 2</a></h4>
</div><!--main--></div><!--group-->

我试图弄清楚如何对艺术家进行分组。但是,无论我把 div 放在哪里,每个国家/地区都会有 1 位艺术家,我们的所有内容都会循环多次。所以我猜这是与我如何从数据库中获取内容有关的问题?

这是我的代码:

    // List posts by a Custom Field's values
    $meta_key = 'artists_country';  // The meta_key of the Custom Field
    $sql = "
   SELECT p.*,m.meta_value
   FROM $wpdb->posts p
   LEFT JOIN $wpdb->postmeta m ON (p.ID = m.post_id)
   WHERE p.post_type = 'artists'
      AND p.post_status = 'publish'
      AND m.meta_key = '$meta_key'
   ORDER BY 
    m.meta_value ASC, 
    p.post_title ASC
    ";
    $rows = $wpdb->get_results($sql);
    if ($rows) {

   foreach ($rows as $post) {
      setup_postdata($post);
      if ($post->meta_value != $current_value) {
          $current_value = $post->meta_value;
            echo ('<div class="group">'); 
                echo "<h3><a class='trigger' title='Click to expand'  rel='nofollow' href='#'>$post->meta_value  +</a></h2>";
                echo ("<div id='main1' class='side-toggle'>");
        }

      // Put code here to display the post
      echo ('<h4 class="date">');
      echo ('<a href="');
      the_permalink();
      echo ('" class="postlink" rel="fancybox" title="the title">');
      the_title();
      echo ('</a>');
      echo('</h4>');
     }
   echo('</div><!--main--> ');echo('</div><!--group--> '); 

    } 

ETC...

我在这里有一个链接:http: //www.musicamestiza.nl/?page_id=4311

4

2 回答 2

0

我认为您需要为此使用 js 或 jquery

$("#groupId").toggle();

无论如何试试这个

<div class="group">
<h2><a href="<?php echo $_SERVER['PHP_SELF']."?div=main2&display="; if(isset($_GET['div']) && $_GET['div']=='main2' && isset($_GET['display']) && $_GET['display']=='block'){ echo 'none'; } else { echo 'block'; } ?>" class="trigger">Country 2</a></h2>
<div id='main2' <?php if(isset($_GET['div']) && $_GET['div']=='main2' && isset($_GET['display']) && $_GET['display']=='block') { echo "style='display:none;'"; } else { echo "style='display:block;'"; } ?> class='side-toggle'>
<h2 class="date"><a href="<?php  ?> rel="fancybox" title="the title">The Artist 1 of country 2</a></h2>
<h2 class="date"><a href="<?php  ?> rel="fancybox" title="the title">The Artist 2 of country 2</a></h2>
</div><!--main--></div><!--group-->
于 2012-06-08T07:05:31.447 回答
0

在长时间使用 div 并尝试了许多不同的方法以按上述顺序按自定义字段打印帖子之后,将结束 div 移动到输出的开头做了一些技巧,如何与添加其他 div 相结合(谁不有任何其他功能)。(所以我用而不是开始输出。这不是一个好方法,但它符合我的目的,它可能是其他人的目的。如果有人有更好的解决方案,我当然想知道。

<?php /* Template Name: Count */ ?>
<div class="test">
<?php // List posts by a Custom Field's values
$meta_key = 'artists_country';  // The meta_key of the Custom Field
$sql = "
SELECT p.*,m.meta_value
FROM $wpdb->posts p
LEFT JOIN $wpdb->postmeta m ON (p.ID = m.post_id)
WHERE p.post_type = 'artists'
  AND p.post_status = 'publish'
  AND m.meta_key = '$meta_key'
ORDER BY 
m.meta_value ASC, 
p.post_title ASC 
";
$rows = $wpdb->get_results($sql);

if ($rows) {
echo ('<div class="test">'); 

foreach ($rows as $post) {

    setup_postdata($post);
    if ($post->meta_value != $current_value) {
            $current_value = $post->meta_value;
            echo "</div></div><div class='group2'><h3><a class='trigger2' title='Click to expand' rel='nofollow' href='#'>$post->meta_value  +</a></h3><div id='main1' class='side-left-toggle'>";
        }



    echo ('<h4 class="date">');
            echo ('<a href="');
            the_permalink();
            echo ('" class="postlink" rel="fancybox" title="the title">');
            the_title();
            echo ('</a>');
            echo('</h4>'); 
    }
    echo ('</div>');

 } //end if rows

?>
</div>
于 2012-06-13T01:03:51.410 回答