How do I show the links in my theme?
Use the Related Links widget to show a list of the related links.
How do I show the links in a specific template?
Use the related_links() function directly in your template files. This will return an unordered list with an <ul> wrapper. Use this code for example in your `content.php’ template:
<?php related_links(); ?>
How can I modify the output of the link list?
You need to use the get_related_links() function. A simple example that shows a list with all link names and the type of link:
<?php $related_links = get_related_links(); ?>
<ul>
<?php foreach ($related_links as $link): ?>
<li><a href="<?php echo $link['url']; ?>"><?php echo $link['type']; ?>: <?php echo $link['title']; ?></a></li>
<?php endforeach; ?>
</ul>
What are the properties returned by the `get_related_links()` function?
The get_related_links() returns an array containing every related link. when you loop through this array every link consists of another array with the following keys:
- key
id: equals to $post->ID or null for custom links
- key
url: equals to get_permalink() or the manually entered url of a custom link
- key
title: equals to $post->post_title or the manually entered title of a custom link
- key
type: the $post->post_type or null for custom links
How do I only show the links for a certain post_type in my theme?
Set the $post_type in get_related_links($post_type) to 'post', 'page' or any custom post-type. A simple example that show a list of links:
<?php $related_links = get_related_links('page'); ?>
<ul>
<?php foreach ($related_links as $link): ?>
<li><a href="<?php echo $link['url']; ?>"><?php echo $link['type']; ?>: <?php echo $link['title']; ?></a></li>
<?php endforeach; ?>
</ul>
How do I show the related links of another post (not the current one)?
Set the $post_id in get_related_links(null, $post_id) to the id of the post. A simple example that show a list of links:
<?php $related_links = get_related_links(null, 1); ?>
<ul>
<?php foreach ($related_links as $link): ?>
<li><a href="<?php echo $link['url']; ?>"><?php echo $link['type']; ?>: <?php echo $link['title']; ?></a></li>
<?php endforeach; ?>
</ul>
How do I link directly to a media file?
You need to check the 'type' and then get with wp_get_attachment_url() the attachment url from the 'id'.
<?php $related_links = get_related_links(null, 1); ?>
<ul>
<?php foreach ($related_links as $link): ?>
<?php if ($link['type'] == 'attachment') :
$url = wp_get_attachment_url($link['id']);
else :
$url = $link['url'];
endif; ?>
<li><a href="<?php echo $url; ?>"><?php echo $link['title']; ?></a></li>
<?php endforeach; ?>
</ul>
How do show the type of a media file?
You need to check the 'type' and then get with wp_get_attachment_url() the attachment url from the 'id'.
<?php $related_links = get_related_links(null, 1); ?>
<ul>
<?php foreach ($related_links as $link): ?>
<?php
if ($link['type'] == 'attachment') :
$url = wp_get_attachment_url($link['id']);
$mime = explode('/', get_post_mime_type($link['id']));
$mime = $mime[sizeof($mime) - 1];
else :
$url = $link['url'];
$mime = null;
endif;
?>
<li><a href="<?php echo $url; ?>"><?php echo $link['title']; ?><?php echo isset($mime) ? ' (' . $mime . ')' : ''; ?></a></li>
<?php endforeach; ?>
</ul>
How to prevent a PHP error when the plugin is not activated?
Put the get_related_links() function or your whole code into an if clause. Like this your theme will still work even if the plugin is deactivated.
<?php if(function_exists('get_related_links')) : ?>
<?php $related_links = get_related_links(); ?>
<ul>
<?php foreach ($related_links as $link): ?>
<li><a href="<?php echo $link['url']; ?>"><?php echo $link['type']; ?>: <?php echo $link['title']; ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; ?>