clients list using wordpress

时间:2012-06-12 作者:seoppc

我正在为我的新网站使用wordpress,我有客户名单(名称和他们的徽标)。我很困惑如何使用wordpress编辑这些内容?Html如下所示。。。

<ul>
<li><img src="1.jpg" alt="client1"/>Client1</li>
<li><img src="2.jpg" alt="client2"/>Client2</li>
</ul>
我应该使用自定义帖子类型还是什么?请推荐一些类似的例子或更好的方法来使用wordpress实现这一点,以便可以轻松地添加/编辑/挖掘客户端。

谢谢

3 个回复
最合适的回答,由SO网友:EAMann 整理而成

您需要为此使用自定义的帖子类型。但不要让“自定义帖子类型”这个词吓跑你。

例如one of my clients 需要出示一张显示不同合作伙伴的“线路卡”。最初,他们想要的只是各种合作伙伴的名称和徽标。在我构建了这个特性之后,他们想为每个合作伙伴添加一个描述。

自定义帖子类型最终包括标题、编辑器和缩略图。最终用户可以创建新的“合作伙伴”,并在传统的WordPress后期编辑屏幕中输入内容-无需在任何地方编辑代码。

Adapt Electronics Custom Post Type

然后,他们的线路卡页面使用自定义快捷码呈现,该快捷码以易于阅读的格式显示所有合作伙伴。

Adapt Electronics Line Card

添加自定义帖子类型的代码相当简单。只需定义要调用的内容并适当设置字符串:

add_action( \'init\', \'manufacturer_post_type\' );
function manufacturer_post_type() {
    $labels = array(
        \'name\'               => \'Manufacturers\',
        \'singular_name\'      => \'Manufacturer\',
        \'add_new_item\'       => \'Add New Manufacturer\',
        \'edit_item\'          => \'Edit Manufacturer\',
        \'new_item\'           => \'New Manufacturer\',
        \'all_items\'          => \'All Manufacturers\',
        \'view_item\'          => \'View Manufacturers\',
        \'search_items\'       => \'Search Manufacturers\',
        \'not_found\'          => \'No manufacturers found\',
        \'not_found_in_trash\' => \'No manufacturers found in trash\',
        \'menu_name\'          => \'Manufacturers\'
    );

    $args = array(
        \'labels\'             => $labels,
        \'capability_type\'    => \'post\',
        \'public\'             => true,
        \'menu_position\'      => 20,
        \'show_ui\'            => true,
        \'publicly_queryable\' => false,
        \'show_in_menu\'       => true,
        \'query_var\'          => false,
        \'rewrite\'            => false,
        \'has_archive\'        => false,
        \'supports\'           => array(
            \'title\',
            \'editor\',
            \'thumbnail\'
        ),
        \'can_export\'         => true,
    );

    register_post_type( \'adapt-manufacturer\', $args );
}
然后是描述和定义输出的问题。这个[linecard] 下面的短代码示例是从数据库中提取此信息并在屏幕上呈现的所有工作:

add_shortcode( \'linecard\', \'line_card_shortcode\' );
function line_card_shortcode( $atts ) {
    $results = get_manufacturers();

    $output = \'<table cellspacing="20px" width="100%"><tbody>\';
    $count = 0;
    $closed = true;

    while ( $results->have_posts()) : $results->the_post();
        if ( $count == 0 ) {
            $output .= \'<tr valign="top">\';
            $closed = false;
        }

        $link = get_post_meta( get_the_ID(), \'manufacturer_link\', true );

        $output .= \'<td width="33%">\';
        $output .= \'<strong><a href="\' . $link . \'">\' . get_the_title() . \'</a></strong><br />\';
        $output .= get_the_content();
        $output .= \'</td>\';

        $count++;
    if ( $count == 3 ) {
            $output .= \'</tr>\';
            $closed = true;
            $count = 0;
        }
    endwhile;

    if ( !$closed ) $output .= \'</tr>\';

    $output .= "</tbody></table>";

    return $output;
}
此外,一旦将内容加载到数据库中,您可以根据需要将其拉出。除了线路卡之外,我的客户在其网站的首页上还有一个滚动的合作伙伴徽标旋转木马,所有这些都使用完全相同的数据。

Adapt logo carousel

我实际上删除了我用来向客户的自定义帖子类型添加“链接”字段的代码,因为它看起来并不重要。但将自定义元框添加到使用register_post_type() 这相当容易。

步骤1:将metabox回调添加到$args 阵列:

$args = array(
    \'labels\'             => $labels,
    \'capability_type\'    => \'post\',
    // ... other entries removed for brevity
    \'register_meta_box_cb\' => \'manufacturer_meta\',
);
然后定义回调函数:

function manufacturer_meta() {
    add_meta_box(
        \'manufacturer_link\',
        \'Link to Manufacturer Site\',
        \'manufacturer_link_meta_box\',
        \'adapt-manufacturer\',
        \'normal\',
        \'high\'
    );
}
在这个特定的示例中,我添加了一个元框,允许用户添加指向外部制造商网站的链接。核心功能在于manufacturer_link_meta_box() 接下来就是all of the normal rules 接下来是自定义元框。

元框的完整代码

PLEASE DO NOT USE THIS CODE VERBATIM IN YOUR SITE! 您绝对需要修改代码以符合您的目的,所以不要只是将其复制粘贴到您自己的系统中。

// This function generates the actual markup of the meta box
function manufacturer_link_meta_box( $post ) {
    $link = get_post_meta( $post->ID, \'manufacturer_link\', true );

    wp_nonce_field( plugin_basename(__FILE__), \'manufacturer_link_nonce\' );
    echo \'<label for="manufacturer_link">Site URL:</label>\';
    echo \'<input type="text" id="manufacturer_link" name="manufacturer_link" size="150" value="\';
    echo $link;
    echo \'" />\';
}

// When the post is saved/updated, you need to save the content of the meta box as well
add_action( \'save_post\', \'save_manufacturer_link\' );
function save_manufacturer_link( $post_id ) {
    if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE )
        return;

    if ( ! isset( $_POST[\'manufacturer_link\'] ) || ! wp_verify_nonce( $_POST[\'manufacturer_link_nonce\'], plugin_basename(__FILE__) ) )
        return;

    if ( ! current_user_can( \'edit_post\', $post_id ) )
        return;

    $link = $_POST[\'manufacturer_link\'];

    update_post_meta( $post_id, \'manufacturer_link\', $link );
}

SO网友:fuxia

您可以使用自定义帖子类型,搜索portfolio 获取大量示例。请参见EAMann的答案。

或者使用link manager. 对于与图像的简单链接,这就足够了。

您可以创建一个非常可自定义的列表,然后使用wp_list_bookmarks().

enter image description here

SO网友:Jeremy Jared

为什么不直接使用帖子呢?您可以为每个客户端创建一篇帖子,并使用特色图像(又名帖子缩略图)显示徽标。然后,您可以通过WordPress管理区域将帖子限制设置为每页10篇:Settings/Reading...Blog pages show at most 10

结束