WordPress

WordPress开发人员和管理员的问答

2
将发布数据重置为嵌套循环中的上一个循环
我正在尝试对嵌套插件使用嵌套循环。循环都可以,但是问题是在第二个嵌套循环($ issue)之后出现的。我想再次访问$ publication循环,但是数据仍然是$ issue数据。 wp_reset_query() 会立即重置为我不想使用的single.php中的主循环。 我可以使用get_posts()而不是新的WP_Query,但是我希望能够使用get_template_part()。 如何将我的数据重置回发布循环,以便第二个“出版物标题”返回出版物,而不是出版物标题? 这是我在single.php中的代码: $publication = new WP_Query( array( 'connected_type' => 'publication_to_post', 'connected_items' => $post->ID, 'fields' => 'ids', 'posts_per_page' => 1, ) ); if ( $publication->have_posts() ) { while ( $publication->have_posts() ) : $publication->the_post(); echo '<h2>Publication title = '.get_the_title().'</h2>'; $pub_id = get_the_ID(); $issue = new …
21 wp-query  loop  reset 

2
将自定义样式表添加到wp-admin
我在让我的自定义样式表在WP-ADMIN区域上工作时遇到麻烦。 plugins_url('style.css', __FILE__) );我必须在名为css的插件中创建文件夹还是将我复制.css到wp-admin/css目录中? 我尝试了两种似乎都不适合我。 什么值应该替换为__FILE__? 对不起,我对这些东西有点陌生。 /*ADDS STYLESHEET ON WP-ADMIN*/ add_action( 'admin_enqueue_scripts', 'safely_add_stylesheet_to_admin' ); function safely_add_stylesheet_to_admin() { wp_enqueue_style( 'prefix-style', plugins_url('style.css', __FILE__) ); } /*ADDS MY CUSTOM NAVIGATION BAR ON WP-ADMIN*/ add_action('admin_head', 'custom_nav'); function custom_nav(){ include('custom_nav.html'); }
21 wp-admin  css 

3
如何在模板中显示重力形式的数据?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为WordPress Development Stack Exchange 的主题。 5年前关闭。 前言 我已经安装了重力表单,创建了表单,并且用户正在向我的站点提交数据。我要做的是在我的页面之一上显示用户提交到我的网站的数据。 我知道这里有Gravity Forms Directory插件。但这仅给出了固定的数据表示。 题 有重力形式的东西可以做这样的事情吗?(伪代码): <?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>

3
将班级名称添加到发布缩略图
我正在使用帖子缩略图链接到页面。 是否可以在帖子缩略图上添加班级名称。 <li><a href="<?php the_permalink(); ?>" ><?php the_post_thumbnail(); ?></a></li>


4
将受限页面重定向到404
如果当前登录的用户没有查看页面的正确权限,是否可以显示404页面?我正在寻找一种PHP方法,例如 if( !current_user_can('administrator') ) { show_404(); exit(); } 我曾考虑过使用重定向,但我想保持网址不变。

3
如何在“用户”个人资料上添加字段?例如国家/地区,年龄等
我对计算机/代码等不是很好。我使用的插件使注册表格变得很杂,然后在该表格中添加了国家/地区,年龄段,性别等。我单击将注册器添加到wordpress用户thingy中的选项。但是,当我尝试时,后端的“用户”部分将仅显示用户名和电子邮件。其他方式是否可以在“用户”部分显示? 我需要它们显示出来以用于统计用途。
21 users 

1
apply_filters('the_content',$ content)与do_shortcode($ content)
可以说我有一个主题选项或自定义的postmeta文本区域。现在,我想执行多个短代码,常规文本,图像等。 什么是最佳做法,为什么? 选项1: $content = //my text area data; echo apply_filters('the_content', $content); 选项2: $content = //my text area data; echo do_shortcode($content); 请向我解释哪种方法是最佳做法,为什么。 编辑 让我详细描述该方案。我根据客户的要求开发主题。有时,我需要在帖子/页面/自定义帖子类型上添加帖子元,以便他们可以添加短代码(滑块,联系表格等)或仅添加简单文本。这是一个文本字段。 为了使短代码有效,我使用了选项1。现在,我从某人那里听说这是错误的方法,应该使用do_shortcode。但是他们没有给我解释为什么这是错误的方式。这就是为什么我问。 这整个过程可以在wp的默认文本编辑器中完成。但是我需要为模板的特定用途创建这些选项,这是我的客户想要的。

1
使用Rest V2(WP4.7),如何限制某些RESTFUL动词?
我的目标是限制每种自定义帖子类型的某些RESTUL动词。例如,给定一个Vocabulary自定义帖子类型,我想说: 权限矩阵 +-------+---+----------+ |index | X | GET | |show | O | GET | |create | X | POST | |update | X | PATCH/PUT| |delete | X | DELETE | +-------+---+----------+ V2似乎没有提供这种级别的控制。我已经浏览了源代码,从我所看到的内容来看,没有任何挂钩/过滤器可用于更改权限。 我当前的解决方案如下。它损害了一个类,您可以在该类中针对允许的操作加载自定义帖子类型的矩阵。然后可以在rest_prepare_vocabulary过滤器中调用此方法,如果权限不匹配,则会破坏响应。 问题 我觉得这不是一个合理的解决方案。这意味着权限在两个位置(一个仍在应用中,处于核心位置)和我的过滤器中得到解决。 理想情况下,它将位于配置级别,即定义自定义帖子类型的位置。 换句话说,我宁愿传递规则(沿的线条exclude_from_search,publicly_queryable等等),而不是执行后查询“喀嚓”。 当前解决方案(可行但不理想) Access.php class Access { function __construct($permissions) { $this->permissions = $permissions; …

1
如何可靠地刷新多站点上的重写规则?
假设您有一个需要刷新重写规则的插件。您可以使用激活钩正确地完成所有操作,并在后期添加冲洗功能,从而使所有操作都平滑且兼容。 有一天,有人尝试在多站点上运行它。 而不是像这样的简单方案: WordPress网站已创建 插件已安装并激活 您现在遇到了噩梦般的场景: 已安装插件并激活了网络 在多站点中创建了新的WordPress站点(或一百个) 从理论上讲它应该起作用,对吗?实际上,它以引人注目的方式出错: $wp_rewrite 状态可能来自错误的站点 switch_to_blog() 也不跟踪重写状态 “后期”部分可能完全发生在不同的博客中 您应该很好用的所有其他插件,可能未在其他站点上一致启用 例如,您可以看到此问题,每当创建新站点时,如何正确地尝试消除主站点上的永久链接。 因此,插件将如何可靠地刷新多站点中的重写规则: 创建新站点时,该站点是什么? 当现有站点从非活动状态激活时,该站点是? 当插件被网络激活时,对于每个站点? 停用网络插件后,对于每个站点? 可能在其他情况下,涉及重写全局上下文而被更改?

1
如何在开发副本上对站点进行更新,然后又不覆盖实时站点的不断发展的数据库而将更新移回?
我试图在标题中尽可能地描述性,并且我知道这个问题以前曾以各种形式提出过,但是我找不到很好的答案,并且可以想象没有人解决这个问题。 很简单,一个WP网站一旦启用,如果它不是一个静态网站,则它将通过添加新帖子,新woocommerce订单,新用户帐户等来不断更新其数据库。 如果要对站点进行一些重大更改和更新,最简单易行的方法是将副本复制到本地安装或另一个开发域中,然后在其中进行所有更改。完成所有更改后,我想将它们复制回实时站点。 如果更改仅针对文件(例如主题和CSS),则有些简单。但是,如果更改涉及数据库的更改,例如添加新的插件以及添加连接/与这些插件相关的内容,那么我不再只能将站点复制回去,因为它将覆盖已添加到实时中的任何新更改。网站的数据库。所有新帖子,新订单,新图片上传都将被删除。 现在,我知道不同的案例场景有不同的解决方案,但是没有解决所有案例的方法吗? 例如,如果对实时站点所做的唯一更改是新帖子,那么我可以将这些帖子导出和导入到开发站点,然后将整个站点移到新站点。与其他一些项目相同,但不是每种项目。与此相关的另一个问题是,wordpress中的导出和导入功能非常糟糕。它太基本了,您几乎没有选择和仅导出特定项目的选项。我可能已经尝试了每个“高级导入/导出”插件,但还没有什么可以解决这个问题。 因此,在另一个主题中,有人指出此插件可以在现场站点上基本安装主题并在其中工作,而普通用户仍然可以看到现有主题,但是仍不能解决所有类型的更改。因为如果您要更改内容(例如,页脚或导航菜单),那么这些内容仍会反映在现有的可见主题/网站中,并且在新的测试主题上看起来可能不错,但在实时主题上却没问题。 没有办法在同一站点/数据库上开发站点的“分支”然后切换吗?还是没有办法在开发站点上进行开发,但实际上是以无损方式合并数据库?如果您知道受影响的组件和事物,是否没有办法做到这一点?否则您需要成为MySQL大师才能尝试这种事情。 我不是唯一一个有这个难题的人。我无法想象这个问题没有解决方案。如何才能做到这一点? 提前致谢。

4
如何从上传目录中删除所有未使用的图像?
我正在尝试清理我的上载文件夹,因为它们现在开始占用服务器上的太多空间。 我尝试使用插件来实现此目的,例如DNUI和Cleanup Images,但是这些插件不起作用,或者在DNUI的情况下(最近已更新并可以正常使用)无法达到我想要的确切结果。这是因为我的网站使用了Woocommerce和一个主题,它们都在其他地方使用图像,而不仅仅是帖子或页面(如页眉,页脚和画廊)。似乎WC使用了它自己的内置的Lightbox插件(称为Pretty Photo),从那里调用了DNUI详细描述为“未使用”的图像。 我知道这是一个问题,但是我想知道是否有人可以指出我正确的方向?我不是开发人员,所以可能甚至都不应该在这里发布信息,但是我可以花时间和决心来解决问题。我在该站点上看到过脚本,其效果与DNUI插件相同,但没有考虑到其他图像用途(即使有可能的话)。任何帮助将非常感激。

2
在后端添加小部件时执行Javascript
我有附加了javascript控件的小部件。 如果在窗口小部件管理页面加载时窗口小部件存在,则控件可以正常工作。 当我添加新的小部件时,它们无法正常工作,我得到了标记,但是没有任何JavaScript事件生效。 如果我保存了新的小部件,则在重新加载表单时,控件将正确创建并且可以正常工作。 刷新页面也可以解决此问题,但仅适用于现有窗口小部件。新的小部件仍然存在此问题。 具体来说,我在这些时候对选择输入运行selectize: 准备好文件 Ajaxcomplete 我已经验证我的代码可以按需在每个事件上运行,但是结果却不符合预期。 这是一个演示该问题的测试插件: https://gist.github.com/Tarendai/8466299 您会看到我有一个计数器,它发现它可以转换的每个select元素都会增加。 笔记: 加载小部件页面后,我可以看到JS控制台中的计数器正在按预期方式增加 当我添加一个新的小部件时,代码将运行,但是,它找不到能在其上运行的所有选择元素,如found.length为0所示。情况并非如此,因为该类型的每个新小部件都应有一个选择元素 select元素具有一个用于标识它们的类,一旦应用了selectize库,便会删除该类,以防止对现有小部件进行重复和重新处理。 在使用selectize之前,我使用了Select2,它具有相同的问题 注释掉AJAX代码,我希望新的小部件具有标准的select输入。他们不。我不知道为什么会这样 那么,如何在不告诉用户在进行更改之前刷新/单击保存的情况下使selectize控件起作用?

3
此代码将运行多少次?(或者,奶奶有多富?)
假设的示例,但在现实世界中适用(对于像我这样学习的人)。 给出以下代码: <?php function send_money_to_grandma() { internetofThings("send grandma","$1"); } add_action('init','send_money_to_grandma'); add_action('init','send_money_to_grandma'); 好的,现在我打开我的WP网站并登录。我在Admin中浏览了几页。在笔记本电池没电之前,“ init”操作总共触发了100次。 第一个问题: 我们寄给奶奶多少钱?是1美元,2美元,100美元还是200美元(或其他价格)? 如果您还可以解释您的答案,那就太好了。 第二个问题: 如果我们要确保只给奶奶寄1美元,那最好的方法是什么?全局变量(信号量)在我们第一次发送$ 1时设置为“ true”吗?还是有其他测试可以查看某个动作是否已经发生并阻止其多次触发? 第三个问题: 这是插件开发人员担心的事情吗?我意识到我的示例很愚蠢,但我同时考虑了性能问题和其他意外副作用(例如,如果函数更新/插入数据库)。


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.