使用链接、徽标和文本创建合作伙伴列表

时间:2013-03-05 作者:otmezger

我想建立一个合作伙伴列表。目前,我已经尝试了“links”功能,问题是我不能在描述字段上使用html标记。因此,我正在寻找另一种解决方案。有人有什么建议吗?

3 个回复
SO网友:chifliiiii

正如NW-Tech评论的那样,您应该为其使用自定义的帖子类型。检查codexregister_post_type.

您可以尝试以下方式:

function partners_custom_init() {
  $labels = array(
    \'name\' => \'Partners\',
    \'singular_name\' => \'Partner\',
    \'add_new\' => \'Add New\',
    \'add_new_item\' => \'Add New Partner\',
    \'edit_item\' => \'Edit Partner\',
    \'new_item\' => \'New Partner\',
    \'all_items\' => \'All Partners\',
    \'view_item\' => \'View Partner\',
    \'search_items\' => \'Search Partners\',
    \'not_found\' =>  \'No Partners found\',
    \'not_found_in_trash\' => \'No Partners found in Trash\', 
    \'parent_item_colon\' => \'\',
    \'menu_name\' => \'Partners\'
  );

  $args = array(
    \'labels\' => $labels,
    \'public\' => true,
    \'publicly_queryable\' => true,
    \'show_ui\' => true, 
    \'show_in_menu\' => true, 
    \'query_var\' => true,
    \'rewrite\' => array( \'slug\' => \'partner\' ),
    \'capability_type\' => \'post\',
    \'has_archive\' => true, 
    \'hierarchical\' => false,
    \'menu_position\' => null,
    \'supports\' => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'comments\' )
  ); 

  register_post_type( \'partner\', $args );
}
add_action( \'init\', \'partners_custom_init\' );
在函数中使用这段代码。php您可以在添加帖子或页面时添加合作伙伴。

你没有解释你想在哪里显示结果。您可以使用custom post type templates 或acustom query 在文件中的任何位置显示它们。

SO网友:brasofilo

尽管有点“不赞成”使用自定义帖子类型(我认为这是不可能的,因为向后兼容)relevant core ticket), 我喜欢链接功能。

以下代码允许在Description 字段,以及Notes 场(因为它是一个大textarea 而不是单线text 描述字段)。

remove_filter( \'pre_link_description\', \'wp_filter_kses\' );
remove_filter( \'pre_link_notes\', \'wp_filter_kses\' );

add_filter( \'pre_link_description\', \'wp_filter_post_kses\' );
add_filter( \'pre_link_notes\', \'wp_filter_post_kses\' );
它可以粘贴在主题的functions.php 文件,但最好将其作为独立插件放置(因此,它是独立于主题的)
查看此问题(&;答:Where to put my code: plugin or functions.php?

这个插件可能也很有趣,我是根据WordPress的答案主题做的:Featured Link Image.

SO网友:helgatheviking

正如所承诺的,这是我过去使用的硬编码解决方案。然而,作为一个警告,我必须说我肯定更喜欢自定义post类型的解决方案。如果有机会,我可能会回去亲自实施。

//edit here to add/remove sponsors
// array(\'Sponsor Name\',\'name of logo in images folder\',\'url of sponsor site\')
$sponsors = array(
                array(\'Sponsor 1\',\'logo1.jpg\',\'http://www.site1.com\'),
                array(\'Sponsor 2\',\'logo2.png\',\'http://www.site2.com\'),
                array(\'Sponsor 3\',\'logo3.png\',\'http://www.site3.com\'),
                array(\'Sponsor 4\',\'logo4.png\',\'http://www.site4.com\')
            );

$src = get_stylesheet_directory() . \'/images/logos/\';

?>
<div id=\'sponsors\'>

    <?php $i=1;
        foreach ($sponsors as $sponsor) {
            echo \'<a target="_blank" class="sponsors" href="\'.$sponsor[2].\'" title="\'.$sponsor[0].\'">
      <img class="color" src="\'. esc_attr( $src .$sponsor[1] ).\' alt="\'.$sponsor[0]. \' Logo" class="sponsors" /></a>\';

            $i++;
        } ?>

</div>

结束