2016-07-20 5 views
0

Ich versuche gerade, das ACF-Beziehungsfeld zu verwenden, um auszuwählen, auf welchen Seiten ein bestimmter Codeabschnitt ausgeführt werden soll, z. B. wenn ich Seite A, Seite B und Seite auswähle C, ich möchte, dass die Arbeit "Hallo" hinzugefügt wird.ACF - Verwenden des Beziehungsfelds zum Auswählen der Seite

Bisher habe ich das folgende Beziehungsfeld.

 <?php 
$posts = get_field('which_venue', options); 

if($posts): ?> 
    <ul> 
    <?php foreach($posts as $post): // variable must be called $post (IMPORTANT) ?> 
     <?php setup_postdata($post); ?> 
     <li> 
      <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 
      <?php 
      $thisurl = the_permalink(); 
      // echo $thisurl;    

      $url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
      if($url == $thisurl) { 
    echo "match"; 
} 
?> 
     </li> 
    <?php endforeach; ?> 
    </ul> 
    <?php wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly ?> 
<?php endif; ?> 

Meine Idee war es, zu versuchen und matchthe URL mit dem ausgewählten URL, das heißt, wenn meine URL http://www.example.com/pagea war und ich hatte Seite A ausgewählt, wäre es angezeigt hallo, aber leider kein Glück so weit.

Hat jemand eine Idee von einem anderen Weg?

Danke!

+0

Ich würde anstelle der URL passende gegen die Seiten-ID vor. Sie können 'get_the_ID()' innerhalb der Schleife verwenden, um die ID der angezeigten Seite zu erhalten. Dann holen Sie sich die Seiten-ID von ACF, mit der Sie abgleichen. Ich weiß nicht mehr genau, wie ich den späteren Teil machen soll. –

+0

Wenn Sie also die Seite A, B und D in Ihrem Beziehungsfeld 'what_venue' auswählen und der Benutzer sich auf der Seite A, B oder D befindet, möchten Sie, dass ein spezieller Code ausgeführt wird, richtig? – Joe

+0

Das ist richtig. Ich habe jetzt eine Lösung. Ich werde morgen für jeden veröffentlichen, der ein ähnliches Problem hat –

Antwort

0

Aus Ihrer Frage, es sieht aus wie diese den Trick tun würde:

  1. Ihre Beziehung Feld ändern Beitrag IDs statt Beitrag Objekt zu speichern.
  2. Wechseln Sie nach dem Ändern auf die Seite Optionen, und speichern Sie die Felddaten erneut.
  3. Platzieren Sie diesen Code in Ihre page.php Datei, oder wo auch immer Sie Ihren Code ausführen möchten:

    <?php //Check if this page is selected in which_venue 
    
    //Get the selected fields 
    $selectedPages = get_field('which_venue', options); 
    
    //Get the current page's ID 
    $myID = get_the_ID(); 
    
    //Check if the current page's ID exists inside the selected fields array. 
    if(in_array($myID, $selectedPages)){ 
        //Run your code 
        echo 'This Page was selected in "which_venue".'; 
    }else{ 
        //Run other code 
        echo 'This Page was NOT selected in "which_venue".'; 
    } ?> 
    
Verwandte Themen