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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.