Можно ли изменить функции Wordpress? - PullRequest
0 голосов
/ 22 мая 2011

Я использую функцию wp_list_bookmarks () в WordPress, чтобы получить ссылки, которые были добавлены в бэкэнд Wordpress, такие вещи, как блогролл и т. Д.

Моя проблема в том, что мне нужен список, чтобы выйтиопределенным образом, чтобы я мог поместить его в столбцы, по 5 ссылок в каждом столбце.

По умолчанию это всего лишь один большой список.Есть ли способ, которым я могу использовать PHP, чтобы изменить способ, которым эта функция публикует ссылки, чтобы я запускал счетчик, а затем после 5 ссылок закрывает текущий список и начинает новый для следующего столбца?

Мне в основном нужно что-то вроде этого:

<ul class="column-1">
    <li>link1</li>
    <li>link2</li>
    <li>link3</li>
    <li>link4</li>
    <li>link5</li>
</ul>
<ul class="column-2">
    <li>link6</li>
    <li>link7</li>
    <li>link8</li>
    <li>link9</li>
    <li>link10</li>
</ul>
// etc...

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 22 мая 2011

Вы можете использовать функцию WordPress get_bookmarks (), а затем адаптировать вывод по своему вкусу. Смотрите здесь для примера:

<?php

$bookmarks = get_bookmarks( array(
            'orderby'        => 'name',
            'order'          => 'ASC',
            'category_name'  => 'Related Sites'
                      ));

// Loop through each bookmark and print formatted output
$column = 1;
$counter = 1;

echo "<ul class='column-$column'>";
foreach ( $bookmarks as $bm ) { 
    if ($counter >= 5)
    {
        $column++;
        $counter = 1; // reset the counter

        echo "</ul><ul class='column-$column'>";

    }
    printf( '<li><a class="relatedlink" href="%s">%s</a></li>', $bm->link_url, __($bm->link_name) );
    $counter++;
}
echo "</ul>";

?>

Ссылка: http://codex.wordpress.org/Template_Tags/get_bookmarks#Examples

0 голосов
/ 22 мая 2011

Вы можете подключиться к wp_list_bookmarks() из плагина (который вам нужно написать).Этот плагин может затем манипулировать обычным HTML, который поступает из функции wp_list_bookmarks(), и возвращать этот манипулированный HTML обратно к нему, чтобы его отображали или возвращали как обычно.

Идея состоит в том, чтобы создать (и активировать!)простой плагин, такой как:

<?php
/*
Plugin Name: Diggersworld Bookmarks
Plugin URI: /8009631/mozhno-li-izmenit-funktsii-wordpress
Description: Example plugin to customise output from wp_list_bookmarks
Version: 0.0
*/

function diggersworld_list_bookmarks($html)
{
    // Do your transformation here
    return '<p>Mmm pie.</p>';
}

add_action('wp_list_bookmarks', 'diggersworld_list_bookmarks');

?>    

Сохраните его в виде файла в папке плагинов и активируйте его из панели администратора Wordpress.Вы увидите, что там, где раньше размещались ваши закладки, вместо этого есть текст Mmm pie..Измените этот пример плагина, чтобы он возвращал желаемый HTML-код, используя любой метод, который вам нравится.

Поскольку это связано с обработкой внутри функции wp_list_bookmarks(), ваши шаблоны должны вызывать wp_list_bookmarks() как обычно.

Конечно, тело функции плагина может использовать код, подобный приведенному в ответе thesocialgeek .

0 голосов
/ 22 мая 2011

Согласно WordPress Плагин API :

Помимо описанных выше хуков (действий и фильтров), еще один способ для плагина изменить поведение WordPress - переопределить функции WordPress. На самом деле, существует небольшой набор функций, которые WordPress предназначен для переопределения плагинов.

К сожалению wp_list_bookmarks нет в списке функций, которые считаются " pluggable ".

Может быть, вы можете найти что-то еще, что будет соответствовать вашим потребностям в API?

...