Questions tagged «theme-development»

主题为WordPress网站创建公共(前端)界面。

3
如何覆盖主题中的可插拔功能?
我遇到的所有文档都讨论了通过插件重写可插拔功能。 如果您要进行主题开发该怎么办? 我的functions.php需要另一个文件来覆盖get_user_by()功能,该文件在中定义pluggable.php。 如果我忽略该if( function_exists() )呼叫,则会收到“无法重新声明...”错误。 如果包含该if( function exists() )调用,则不会出错,但是由于存在可插入版本,因此当然会忽略我的函数。 根据Dominic 在WordPress启动命令上的精彩文章,很明显,该pluggable.php加载是在主题的加载之前进行的functions.php,依此类推,因此可以解释该错误。 因此,问题是-您如何在主题内利用好用的可插拔体系结构,而无需编写必须与主题捆绑或安装的插件? 进一步说明:因此看来,论点是主题不应该尝试执行插件所做的事情。但是该论点已经有四年多了(根据4位数的追踪数)。考虑到当今主题开发领域的复杂拓扑结构,我很乐意从一些沉重的打击者那里听到这种哲学是否仍然适用。我想相信我们从那以后就已经发展了。 上下文:我正在为客户开发一次性CMS解决方案,其中包含许多自定义元数据,Admin后端的自定义,登录/身份验证过程以及各项工作。当然,这里有设计组件-就是主题部分所在的地方。事实是,这些组件根本不是可重用的组件-它们永远不会应用于其他客户,也永远不会置于GPL之下并开源,它们是大多数当然不会在其他WordPress部署中分发/安装。充其量,我会在将来的项目中利用一些最佳实践,但这绝对是参考/复制粘贴工作。 这听起来不像是我的插件用例。该主题已安装,可能是“二十一”的子主题,也可能是一个独立的主题,它的functions.php调用包含一系列内容,每个都处理所涉及的CMS的不同方面。然后,主题模板文件将使用包含中定义的自定义“模板标签”。我不想让主题文件依赖于某些插件或其他被激活的对象,等等。在系统中增加复杂性只是没有意义。当然,我可以将其放在必须使用的plugins文件夹中,但是仍然感觉像黑客一样-现在,与为此项目进行的自定义相关的所有内容都包含在中wp-content/themes/my-theme/。我也不想考虑在某些插件文件夹中搜索内容。 不要误会我的意思。我喜欢插件,并且使用它们并编写它们。当插件是第三方并且代表最佳实践时,我确实将插件与这种高度定制的主题开发结合使用,远远超出了我在合理的时间范围内可能会推出的最佳实践。但是,当我需要为一次性场景修改核心功能时,我转向动作挂钩,过滤挂钩,并且我也希望能够依赖于用户和身份验证方面的可插入功能。

2
何时使用add_action('init')vs add_action('wp_enqueue_scripts')
在主题的functions.php中,我调用add_action以获得对加载jquery位置的控制(在页脚以及主题的其他脚本中)。 我遇到的问题是,当我使用add_action('wp_enqueue_scripts')时,只有在未加载任何插件的情况下,它才会启动。但是,add_action('init')方法在所有情况下均适用。 我不记得为什么,但是我相信在这种情况下首选add_action('wp_enqueue_scripts')。如果是这样,我如何在所有情况下都能正常工作? 在functions.php中 //if(!is_admin()){add_action('init', 'my_theme_init');} //THIS WORKS ALL THE TIME //add_action('wp_enqueue_scripts', 'my_theme_init'); //THIS ONLY WORKS WHEN NO PLUGINS PRESENT if(!is_admin()) { require_once(TEMPLATEPATH . '/functions_public.php'); } 在functions_public.php中 function my_theme_init() { /* PREVENT DUPLICATE COPIES OF JQUERY FROM PLUGINS **************************************************/ wp_deregister_script('jquery'); /* LOAD THE LOCAL WORDPRESS COPY OF JQUERY AND THEME …

1
wp_register_sidebar_widget和register_widget有什么区别?
它们之间有什么区别,什么时候应该使用它们? 我现在正在使用wp_register_sidebar_widget,并且工作正常,但是我在网上看到很多关于如何使用register_widget和类创建窗口小部件的教程,我的大多数窗口小部件都不需要选项,因此我应该坚持wp_register_sidebar_widget还是应该使用register_widget即使我没有表格? 提前致谢。

1
我们应该在函数文件中使用get_template_part()而不是include_once吗?
我正在使用theme-check插件来检查我的主题是否有错误和建议,我在诸如header.php和index.php之类的主题文件中使用get_template_part(),但在functions.php中,我正在使用include_once()theme-检查不是指向这些,而是​​指向在functions.php中包含的widgets.php文件中使用的include_once 我的问题是我们应该使用get_template_part()而不是所有include_once()和include()还是仅将其用于获取频繁使用的标记?我知道只建议使用get_template_part(),但我想遵循最佳实践和建议。 提前致谢。


7
如何仅在某些页面上显示菜单?
我不想使用侧边栏小部件来告诉它们应该在哪个页面上可见,我喜欢选择菜单设置以显示在特定页面上。 默认的Wordpress方式: 因此,项目是一个页面,并包含一些子页面。但是,如果我又有10个以上处于相同情况的页面和子页面,该怎么办? 我想添加一个额外的设置(顶层页面列表): 但是加载这些设置后,我找不到任何文档,操作,过滤器等。

1
如何将页面模板文件(如page- {slug} .php)移动到子目录?
我想将页面模板文件移动page-{slug}.php到主题中的子目录中,以使WordPress自动识别它们。如果子窗体中不存在上述表单的页面模板,则WordPress应该退回到默认模板加载规则。我该如何实现? 注意-1: 对于页面模板,此问题和相应的答案更为通用,并且此链接提到template-parts/page,这不是一回事。 注意2:我有多个page-{slug}.php类似的页面模板文件,因此我想将它们移到子目录中以使文件组织更整洁。

1
更改帖子的永久链接,但不更改自定义帖子类型
目前,我的帖子固定链接结构是 domain.com/post-title 我正在使用静态首页和用于帖子的“博客”页面。我想将帖子,标签和类别的永久链接结构更改为 domain.com/blog/post-title 我可以轻松地在永久链接结构中添加/ blog /,但要注意的是,我的自定义帖子类型也获得了这种修改后的永久链接结构,这并不是理想的结果。 提前致谢!

1
Customizer中的“自定义图像”部分
因此,我在定制器中有此定制部分,用于控制主页上的功能产品。所有这些都已注册,依此类推,但我遇到的问题是客户端上载我不知道如何进行更新的功能图片之一。 我正在使用的functions.php代码: // Customiser function themeName_customize_register( $wp_customize ) { $wp_customize->add_setting('feature_product_one', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_two', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_three', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', …

3
如何在标题中插入徽标?
我在WordPress世界中是个新手(我来自Joomla) 我发现将徽标插入此WordPress测试网站中遇到一些困难:http : //onofri.org/example/ 我想将徽标放在网站标题中,而不是“ EXAMPLE”文本中。 在WordPress配置面板中,我没有找到可以上传徽标的位置,而是自动在标头中放置了“ EXAMPLE”文本(我不知道这是否是Joomla中的标准WordPress功能,还是Joomla中的某些特定主题可以提供的功能,或者如果我必须直接将其放入代码中) 但是,即使在主题设置中也找不到。 我该怎么做才能放置徽标?我是否可以将其直接插入HTML代码中?

3
WooCommerce商店页面使用我的自定义模板
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为WordPress Development Stack Exchange 的主题。 5年前关闭。 在提出问题之前,我想告诉您,我已经在/programming/15025213/wordpress-woocommerce-template-file-overiding中提出了问题 我正在使用WooCommerce插件开发网站。WooCommerce一切都很好。根据我的要求,我已经从WooCommerce仪表板将主页配置为商店基础页面,以使我的主页成为商店页面。现在,我的要求是放置一些应从管理端上传的图像,并在图像上显示一些文本。对于该功能,我在G​​oogle上进行了搜索,有人建议我使用WordPress Advanced Custom Fields。我刚刚安装了它。 现在,我看到WooCommerce没有使用我的自定义主题。它使用自己的自定义主题。因为我想使用“ 高级自定义字段”插件显示图像和文本,所以我确实需要自己的自定义模板来使用对图像和文本的查询。然后,我再次在Google上搜索了解决方案,并得到了建议,只需将主题的副本复制page.php到其中woocommerce.php,然后替换代码即可: <?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content', 'page' ); ?> <?php comments_template( '', true ); ?> <?php endwhile; // end of the loop. ?> 与 <?php woocommerce_content(); ?> 我这样做了,但仍然没有从“高级自定义字段”中获取我的自定义字段。所以请帮助我。任何建议和帮助将不胜感激。谢谢。 我的代码用于显示图像和文本的高级自定义字段,如下所示: <?php …

3
主题的CSS类
有人知道我应该在主题中使用预定义(由WP建议)的CSS类吗? 我在Internet上的某个地方看到了所有CSS类的列表,这些类用于WP主题,但找不到它。 更新:我找到了看到此列表的网站:http : //www.wpbeginner.com/wp-themes/default-wordpress-generation-css-cheat-sheet-for-beginners/

4
从该插件调用单个函数时,如何不使用php条件语句而使wp主题中需要插件?
我的Wordpress主题之一需要一些第三方插件才能正确运行。 大多数时候,我曾经使用条件语句从第三方插件调用函数 if(function_exist('plugin_function')) { plugin_function() // do something } 假设尽管我需要通过主题的多个文件广泛使用一个插件...我想避免使用许多IF条件...是否有适当的方法要求将某些特定的插件安装在WP中,甚至更好地安装它们如果在激活主题之前缺少它们? 谢谢

1
获取定制器字段的输入值以进行实时预览
根据法典,这个问题可能是有关主题定制程序的任何教程,您可以使用以下代码获得定制程序字段的值: ( function( $ ) { //Update site background color... wp.customize( 'background_color', function( value ) { value.bind( function( newval ) { $('body').css('background-color', newval ); } ); } ); } )( jQuery ); 问题是您可以在更改该值时获得该值。 我的问题是,如何(以一种理智的方式)在同一回调中检索另一个字段的值。 例如 ( function( $ ) { //Update site background color... wp.customize( 'background_color', function( value ) { …

1
重置管理员中元框的位置
我正在写一个主题,在其中有一个创建两个元框的函数。我使用的“ add_meta_box()”函数的第四个参数可以设置为(高,核心,默认或低)。我希望这些框以特定的顺序出现(即,这4个组之一中的顺序-例如,两个元框都设置为“优先”,我希望能够确定哪个先显示,然后第二个显示)。 那是背景故事,但是我的问题来自这样一个事实,即我在尝试这种方法时必须将其中一个盒子移到另一列。并且该操作似乎完全覆盖了编程中的优先级(我知道这一点,因为当我重命名元框时,我再次具有编程控制权)。我已经尽一切努力将其恢复为默认设置,但无济于事。有人可以帮忙吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.