1

I have the below array em_events(array( and need to insert the below foreach to repeat the $delete link. How do in put a foreach into an array? Not sure how best to describe this.

foreach ($EM_Events as $event) {
    $delete = esc_url(add_query_arg(array('action'=>'event_delete', 'event_id' => $event->event_id, '_wpnonce'=> wp_create_nonce('event_delete_' . $event->event_id))));
}

em_events(array(
    'owner'=>4,
    'limit'=>10,
    'scope'=>'all',
    'format'=>'

<li class="even portfolio-entry">
    <div class="entry-thumb standard">
        <a class="thumblink" href="'.$delete.'"><span class="thumbnail">#_EVENTIMAGE{220,220}</span><span class="extra"><strong>Edit Event</strong></span></a>
    </div>
                
    <div class="entry-title">
        <a href="#_EVENTURL" title="#_EVENTURL" rel="bookmark"><span style="color:#00b1d9;">PREVIEW EVENT POST</span><span>#F #j, #Y</span>#_NAME</a>
    </div>
</li>
    '
));

3 Answers 3

0

I think what you want is this:

foreach ($EM_Events as $event) {
    $delete = esc_url(add_query_arg(array('action'=>'event_delete', 'event_id'=>$event->event_id, '_wpnonce'=> wp_create_nonce('event_delete_'.$event->event_id))));



    em_events(array(
    'owner'=>4,
    'limit'=>10,
    'scope'=>'all',
    'format'=>'

  <li class="even portfolio-entry">
      <div class="entry-thumb standard">
          <a class="thumblink" href="'.$delete.'"><span class="thumbnail">#_EVENTIMAGE{220,220}</span><span class="extra"><strong>Edit Event</strong></span></a>
      </div>

      <div class="entry-title">
          <a href="#_EVENTURL" title="#_EVENTURL" rel="bookmark"><span style="color:#00b1d9;">PREVIEW EVENT POST</span><span>#F #j, #Y</span>#_NAME</a>
      </div>
  </li>'
     ));
}
Sign up to request clarification or add additional context in comments.

1 Comment

This repeats the em_events(array for as many times as their are $EM_Events. In this case 4 times. Basically I need em_events(array to show up once but the <li> to repeat over $EM_Events
0

Build your HTML string in the array declaration using array_map(). In array_map()'s callback, use sprintf() to establish a placeholder to be replaced by your href value generator.

$li = <<<HTML
<li class="even portfolio-entry">
  <div class="entry-thumb standard">
    <a class="thumblink" href="%s">
      <span class="thumbnail">#_EVENTIMAGE{220,220}</span>
      <span class="extra">
        <strong>Edit Event</strong>
      </span>
    </a>
  </div>
  <div class="entry-title">
    <a href="#_EVENTURL" title="#_EVENTURL" rel="bookmark">
      <span style="color:#00b1d9;">PREVIEW EVENT POST</span>
      <span>#F #j, #Y</span>
      #_NAME
    </a>
  </div>
</li>
HTML;

em_events([
    'owner' => 4,
    'limit' => 10,
    'scope' => 'all',
    'format' => implode(
        "\n",
        array_map(
            fn($event) => sprintf(
                $li,
                esc_url(
                    add_query_arg([
                        'action' => 'event_delete',
                        'event_id' => $event->event_id,
                        '_wpnonce' =>  wp_create_nonce('event_delete_' . $event->event_id)
                    ])
                )
            ),
            $EM_Events
        )
    )
]);

Comments

-1

What about this:

$format=NULL;
foreach ($EM_Events as $event) {
            $delete = esc_url(add_query_arg(array('action'=>'event_delete', 'event_id'=>$event->event_id, '_wpnonce'=> wp_create_nonce('event_delete_'.$event->event_id))));

$format=$format.
'<li class="even portfolio-entry">
    <div class="entry-thumb standard">
        <a class="thumblink" href="'.$delete.'"><span class="thumbnail">#_EVENTIMAGE{220,220}</span><span class="extra"><strong>Edit Event</strong></span></a>
    </div>

    <div class="entry-title">
        <a href="#_EVENTURL" title="#_EVENTURL" rel="bookmark"><span style="color:#00b1d9;">PREVIEW EVENT POST</span><span>#F #j, #Y</span>#_NAME</a>
    </div>
</li>';   
}

em_events(array(
'owner'=>4,
'limit'=>10,
'scope'=>'all',
'format'=>$format,
 ));

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.