Показывать красивые ссылки в шорткоде - PullRequest
0 голосов
/ 24 марта 2020

Я делаю шорткод для отображения всех симпатичных ссылок на первой странице. Пока что мне удалось отобразить все, кроме отсутствующих ссылок

// Display Pretty-Links
function custom_budurl() {

    $links = new WP_Query(array(
        'post_type' => 'pretty-link',
        'orderby' => 'meta_value',
        'order' => 'ASC',
    ));

    if ($links -> have_posts()) :
        // Start The Loop
        while ($links -> have_posts()) : $links -> the_post();
            echo '<li><a href="' . . '">' . get_the_title() . '</a></li>';
        endwhile;
    endif;

}
add_shortcode( 'budurl', 'custom_budurl' );

Но я не могу понять, что написать в опции href = "", чтобы напечатать ссылку, созданную, как показано на рисунке. enter image description here

Было бы здорово, если кто-нибудь может помочь. Спасибо

1 Ответ

1 голос
/ 25 марта 2020

Симпатичные ссылки используют пользовательскую таблицу. Ниже я использую пользовательский выбор, чтобы получить ссылку на симпатичную ссылку, а затем создаю URL, используя home_url(). Протестировано на WP 5.3.2 с Pretty Links 3.1.0 под управлением PHP 7.4.

// Display Pretty-Links
function custom_budurl()
{

  $links = new WP_Query(array(
    'post_type' => 'pretty-link',
    'orderby' => 'meta_value',
    'order' => 'ASC',
  ));

  if ($links->have_posts()) :
    // Start The Loop
    while ($links->have_posts()) : $links->the_post();
      global $wpdb;

      // get current post id
      $pid = get_the_ID();

      // custom select to get pretty link slug from custom table
      $sql = $wpdb->prepare("SELECT slug from {$wpdb->prefix}prli_links where link_cpt_id = %d", $pid);

      // run the query
      $results = $wpdb->get_row($sql);

      // build url
      $url = home_url($results->slug);

      // print html to browser
      echo '<li><a href="' . $url . '">' . get_the_title() . '</a></li>';

    endwhile;

    wp_reset_postdata();

  endif;
}
add_shortcode('budurl', 'custom_budurl');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...