wake-up-neo.com

das Argument update_count_callback in der Funktion register_taxonomy funktioniert nicht

Ich habe eine benutzerdefinierte Taxonomie für ATTACHMENTS registriert. Auf der Administratorseite ist alles in Ordnung: Ich kann Medien mit den Kategorien meiner benutzerdefinierten Taxonomie kennzeichnen, sie werden mit meinen Bildern usw. angezeigt.

Ich erstelle dann eine Vorlagendatei für eine Albumseite, die Bilder filtert, die mit den Kategorien meines benutzerdefinierten Taxos markiert wurden (gruppiert nach Kategorien).

Hier ist ein Beispiel meines Codes für diese Seite:

$post_type = 'attachment';
$tax = 'albums';
$tax_terms = get_terms($tax,array('orderby' => 'id', 'order' => 'DESC') );
        if ($tax_terms) {
          foreach ($tax_terms  as $tax_term) {
              $args=array(
              'post_type' => $post_type,
              'albums' => $tax_term->slug,
              'post_status' => 'publish',
              'posts_per_page' => -1,
              'caller_get_posts'=> 1
              );

              $my_query = null;
              $my_query = new WP_Query($args);
              if( $my_query->have_posts() ) {
                $terme = $tax_term->slug;
                $lien_album = 'http://www.example-site.com/wp/section/albums-photo/album-individuel/?album='.$terme;
                echo '<a href="'.$lien_album.'"><h3 style="margin-bottom:-8px;">'.$tax_term->name.'</h3></a><br/>';
                while ($my_query->have_posts()) : $my_query->the_post(); 
                  $image_id = get_the_ID();
                  $image_adresse = wp_get_attachment_image_src( $image_id, 'medium');

                  ?>
                  <div class="vignettes">
                  <img src="<?php echo $image_adresse[0]; ?>" class="vignette" alt="<?php the_title_attribute(); ?>" />
                  </div>

                  <?php
                endwhile;
              }
              wp_reset_query();
              ?>
              <a class="bouton-albums" href="<?php echo $lien_album; ?>">Voir les photos de cet album</a>
              <p style="clear:both;">&nbsp;</p>
              <?php
          }
        }               

Ich habe festgestellt, dass auf meiner Vorlagenseite nur Bilder auftauchten, die auf einer tatsächlichen Seite (oder in einem Beitrag) verwendet wurden.

Nachdem ich die register_taxonomy-Funktion des Codex analysiert hatte, las ich über ein Argument namens 'update_count_callback' und dass es den Wert '_update_generic_term_count' verwenden sollte, wenn ein benutzerdefiniertes Taxo für etwas anderes als Posts verwendet wird. Ich habe es dann in meine Argumente für die Funktion register_taxonomy wie folgt eingefügt:

'update_count_callback' => '_update_generic_term_count',

Leider scheint das nicht zu funktionieren. Oder hat dieses Argument vielleicht nichts mit dem zu tun, was ich erreichen will?

Ich möchte nicht, dass sich die Bilder aller meiner Alben auf einer Seite oder in einem Beitrag befinden. Ich möchte einfach in der Lage sein, einige Bilder in die Medienbibliothek einzufügen, sie mit meinem benutzerdefinierten Taxo zu kennzeichnen und sie auf meiner Albumseite (die meine spezielle Vorlage verwendet) anzuzeigen.

Ich hoffe, jemand kann mir sagen, wo ich falsch liege oder wie ich das bekomme, was ich will!

1
Petit chemin

Wenn Sie attachments abfragen, müssen Sie sich um das Argument post_status kümmern, das eine andere Bedeutung hat als für andere Beitragstypen. Anhänge haben den Status inherit , was bedeutet, dass der Status mit dem des übergeordneten Beitrags (dh dem Beitrag, von dem sie hochgeladen wurden) identisch sein sollte. Dies führt dazu, dass Anhänge, die nicht veröffentlichten Posts zugeordnet sind, und Anhänge, die direkt in die Medienbibliothek hochgeladen wurden, fehlen.

Damit Ihr Code funktioniert, könnten Sie ihn ersetzen

'post_status' => 'publish',

mit

'post_status' => 'any',

In Bezug auf den Parameter update_count_callback handelt es sich um die Anzahl der Zahlen, die an einer bestimmten Stelle im Administrator angezeigt werden. Sie können diesen Rückruf verwenden, um diese Nummer selbst zu berechnen. Es hat also nichts mit Ihrem Problem zu tun.

0