我不明白为什么主题如此奇怪和扭曲

时间:2015-08-26 作者:Giacomo Cerquone

我在这里问你的不是一个技术问题,而是一个哲学问题。我首先开始为一个新的小型cms开发主题,我也在github上贡献了这个主题,它的名字是anchor cms,潜力巨大。

现在我正在为wordpress开发主题,当我们谈论主题开发时,我注意到在anchor面前是多么糟糕。我可以给你举很多例子来证明我的意思。让我们从“注释表单”功能开始:为什么创建主题的开发人员必须使用wordpress标记?另一个例子是当你必须检索帖子的评论时。。。令人难以置信的是,我被迫获取这些数据的方式,所有那些臃肿的标记,以及当你不得不获取帖子和Wordpress的缩略图而不是给你该图像的url时,会返回一个完整的img标记以供使用。有趣的是,您必须根据需要调整标记,并且必须将配置参数(如数组)传递给函数。我看到这些东西就像补丁上的补丁,老实说,这些东西让开发人员难以置信地受制于“规则”。

我认为Wordpress是膨胀的,它是为了膨胀。我不知道这是否仅仅是我和我对编写漂亮、整洁、简单、快速的代码的痴迷,但在WP上开发需要我在代码中编写很多额外的东西,这让一切变得更加沉重,我在网上注意到,我不是唯一一个这么想的人。我希望你能理解我想用蹩脚的英语表达的想法。

1 个回复
SO网友:Tom J Nowell

现在我正在为wordpress开发主题,当我们谈论主题开发时,我注意到在anchor面前是多么糟糕。我可以给你举很多例子来证明我的意思。让我们从“注释表单”功能开始:为什么创建主题的开发人员必须使用wordpress标记?

如果没有,WordPress提供默认标记,但您不必使用它。另一方面,输入var名称是必需的,原因很明显,否则表单将无法工作,并且您不喜欢的许多标记仅仅是您可以传递到正在调用的注释表单函数中的几个选项的默认值。

我把这归因于缺乏知识

另一个例子是当你必须检索帖子的评论时。。。令人难以置信的是,我被迫获取这些数据的方式,以及所有那些臃肿的标记

做事的方法不止一种,如果你这样做的话,你可以完全控制:

$args = array(
   // args here
);

// The Query
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );

// Comment Loop
if ( $comments ) {
    foreach ( $comments as $comment ) {
        echo \'<p>\' . $comment->comment_content . \'</p>\';
    }
} else {
    echo \'No comments found.\';
}
并不是每个API都是低级的,有些是针对不擅长开发的人的高级函数,或者是为了用默认值节省时间,有些是出于历史原因和向后兼容性等原因而存在的

此外,当您需要获取帖子和Wordpress的缩略图而不是提供该图像的url时,还会返回一个完整的img标记以供使用。

不,有一个函数可以做到这一点,the_post_thumbnail, 但也许使用get_post_thumbnail_id 查找表示缩略图的附件的帖子ID,以及wp_get_attachment_url:

$featured_image = get_post_thumbnail_id( get_the_id() );
$url = wp_get_attachment_url( $featured_image );
echo \'<img src="\'.$url.\'"/>
有趣的是,您必须根据需要调整标记,并且必须将配置参数(如数组)传递给函数。我看到这些东西就像补丁上的补丁,老实说,这些东西让开发人员难以置信地受制于“规则”。

也许您应该使用较低级别的API,一些高级API可以做很多事情,并且不需要数据存储的基本知识,但它们有很多参数,例如标记。wp_list_categories, 等等,听起来您最好使用较低级别的API,例如术语/分类类/函数

你建议WordPress做的所有事情都已经存在了。在WordPress中,没有一种单一的方法可以做某事,每种方法都适合不同层次的知识和用例。