WordPress

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

2
是否有插件生命周期文档?
是否有一些文档可以解释插件的生命周期? 我正在启动一个具有OOP风格的新插件,但我发现我的主类实例化了很多(这要归功于Xdebug和Netbeans)。 我不知道为什么,这让我很烦,因为我要实例化一个Dropbox-API对象,而且我真的不认为WordPress可以这么多地实例化我的主类。 我在Codex和Google上都没有发现任何与插件生命周期相关的信息。

2
插件SVN和更新API-如何识别插件?
对我来说一直以来还不清楚的一件事(尤其是因为我还没有将插件提交到存储库中)是如何生成插件的唯一“ ID”(子标签)的(即此列表)。 是在SVN提交时由作者还是由主持人选择? 是经过消毒的插件名称(标题)吗? 是plugin_basename吗? 它是主插件文件(没有目录名)吗? 还有吗 我很好奇插件的哪个属性将其链接到插件更新API 的SVN对应项(如果有)? 我问,部分出于本性,我想知道,但同时也要确保(在某种程度上)我自己的一次性插件不会与SVN中的插件冲突。 例如,如果只有3),我可以使用一个高度唯一的目录名,但是将我的插件名称(标题)保留为'n sweet。 注意:虽然似乎是“标准”文件命名约定[my-plugin-name]/[my-plugin-name].php,但我很喜欢[my-plugin-name]/plugin.php。 它使我所有的插件都具有一定的一致性,很明显,它是“ bootloader”(主)文件,从小角度看,我讨厌目录名称的重复。 这是我问这个问题的另一个原因,因为4)会把我搞砸。另外,我也想听听您对这个“标准”的看法:)

1
add_role()只运行一次?
我惊讶地发现add_role()修改了数据库,并且如果角色已经存在则失败。这里有两个含义,一个比另一个严重:1)如果您正在开发并更新add_role代码,则必须首先remove_role()2)一旦正确,就永远不必运行该代码再次。 因此,通常我一直将add_role()放在wp_loaded动作挂钩中。并且由于我正在开发中,所以我还在add_role之前添加了remove_role(),因此可以确定,如果我修改了大写字母列表,它将实际上生效。 但是很明显,每次访问博客页面时都在运行此命令。好的,我可以将其置于仅限管理员的操作中,也可以在“用户”或“工具”下创建一个插件页面,该角色可以一次创建。我想我希望有一个更简单,更优雅的解决方案。 我不认为这里有一次run_once动作吗? 还是最佳实践只是添加角色,然后多次使用add_cap()?即使那样,我仍然认为add_cap正在访问数据库。 仅考虑减少不必要的数据库访问的最佳方法。您的最佳做法是什么?

1
通过FTP上传后更新媒体库文件
我必须将大量文件直接直接上传到/ wp-content / uploads / [year] / [month] /,但这些文件未出现在“仪表板”>“媒体”>“库”中 有没有一种更新或刷新它来加载这些文件的方法,或者只是因为它也应该写在数据库中而避免了,否则它只是发生了吗?在这种情况下,有没有可以解决的插件?
11 media  ftp  library 


5
PHP最佳实践
在做诸如single.php之类的模板并且将php包裹在html中时,最好这样做: 启动+停止PHP?例如 <h1 class="post-tilte"><?php the_title(); ?></h1> <p class="post-content"><?php the_content();?></p> 要么 回声HTML和Escape PHP?例如 - <?php echo '<h1 class="post-title">' . get_the_title() . '</h1> <p class="post-content"' . get_the_content() . '</p> 我没有一个自由释放的选择,发现自己都做,只是好奇地听到一些想法
11 php  wp-query  escaping 

2
如何检查插件前缀的唯一性?
为了避免与其他插件发生冲突,应为所有全局函数,操作和插件添加唯一的前缀,例如: function xyz_function_name() { ... } 问题是,我该如何验证它xyz确实是唯一的?例如,Yoast SEO的使用wpseo_,我可以想象其他SEO插件也可以轻松使用。搜索可用的WordPress插件以查找潜在冲突的最佳方法是什么?还是在那里?

1
将自动关闭的简码按钮添加到WP 4.6中的TinyMCE
我熟悉创建自动关闭的短代码,例如: // shortcode function wpse_shortcode_example( $wpse_atts ) { // Attributes $wpse_atts = shortcode_atts( array( 'foo' => 'bar', 'width' => '100%', 'height' => 'auto', ), $wpse_atts, 'wpse' ); // Return return '<embed src="' . $wpse_atts['src'] . '" width="' . $wpse_atts['width'] . '" height="' . $wpse_atts['height'] . '"; } add_shortcode( 'wpse', 'wpse_shortcode_example' …

1
如何在没有编辑器的情况下使用wpLink?
我想创建主题选项来添加链接。如果存在wp编辑器,则加载这些脚本并触发对话框可以正常工作。 wp_enqueue_script('wplink'); wp_enqueue_script('wpdialogs'); wp_enqueue_script('wpdialogs-popup'); wp_enqueue_style('wp-jquery-ui-dialog'); wp_enqueue_style('thickbox'); wp_editor('', 'unique_id', array('editor_class'=>'hidden')); $('.add-link').on("click", function(e){ e.preventDefault(); wpLink.open(); return false; }); 但是如何在不存在编辑器的情况下使其打开链接对话框? 这就是我所追求的
11 links  editor 

1
如何在自定义弹出tinymce窗口中添加“插入/编辑链接”按钮?
我需要在文章的正文中插入一些文本,将其包装在带有自定义类的某些div标记中,从而变成“侧面标记”。 我在tinymce中创建了一个自定义按钮,该按钮会弹出一个带有文本字段的新窗口。您编写文本,然后单击OK,它将添加begin和endig div标签并将其插入到光标所在的wp编辑器中。 这是代码: (function () { tinymce.PluginManager.add('custom_mce_button2', function(editor, url) { editor.addButton('custom_mce_button2', { icon: false, text: 'Side Tag', onclick: function (e) { editor.windowManager.open( { title: 'Insert a Sidetag', body: [{ type: 'textbox', name: 'title', placeholder: 'Type the side tag content here.', multiline: true, minWidth: 700, minHeight: 50, }, { type: …

2
使用wp_defer_term_counting有不利之处吗?
我有一个超过200万个帖子的WordPress数据库。每当我插入新帖子时,我都必须打电话wp_set_object_terms,这需要两秒钟的时间才能执行。我遇到了这篇文章,建议您致电wp_defer_term_counting以跳过术语计数。 如果使用这种方法,对WordPress的功能会产生严重影响吗? 这是帖子中的代码,以防万一链接失效: function insert_many_posts(){ wp_defer_term_counting(true); $tasks = get_default_tasks(); for ($tasks as $task){ $post = array( 'post_title' => $task[content], 'post_author' => $current_user->ID, 'post_content' => '', 'post_type' => 'bpc_default_task', 'post_status' => 'publish' ); $task_id = wp_insert_post( $post ); if ( $task[category] ) //Make sure we're passing an int as the term …

1
在编辑器中更改简码文本的外观
是否可以在编辑器中更改短代码的外观,或者以其他方式使其与周围的文本更具区别? 例如,如果帖子的内容是这样的... 有关Lorem Ipsum的参考站点,提供其起源信息,以及一个随机Lipsum生成器。有关Lorem Ipsum的参考站点,提供其起源的信息,以及一个随机Lipsum生成器。[shortcode] asfdasfd [/ shortcode]参考站点关于Lorem Ipsum,提供了其起源的信息,以及一个随机的Lipsum生成器。有关Lorem Ipsum的参考站点,提供了其起源的信息,以及一个随机Lipsum生成器。关于Lorem Ipsum的参考站点,给出了其起源的信息,以及随机的Lipsum生成器。 ...如果里面的简码是粗体的,那将是很好的,这样可以很容易地看到它:

1
插入AJAX后初始化TinyMCE编辑器/可视编辑器
我在自定义选项页面上有一个“中继器”样式字段组。有一个处于隐藏状态的活动可视编辑器,当用户单击“添加新”时,整个行将被克隆。然后,我需要在克隆行中初始化可视编辑器。我的代码: $('.repeater-add-new').click(function(event) { event.preventDefault(); var target = $(this).data('repeater'); $( '#' + target).find('.repeater-row:not(.clone) .repeater-content.in').collapse(); var newRow = $( '#' + target + ' .repeater-row.clone' ).clone().appendTo( '#' + target + ' .repeater-row-wrapper' ).removeClass('clone'); rebuildIndex(target); // Initialize editors if needed newRow.find('.wp-editor-wrap').each(function(index, el) { var ed_id = $(this).find('textarea').attr('id'); tinymce.init(tinyMCEPreInit.mceInit[ed_id]); tinymce.execCommand('mceAddEditor', false, ed_id); quicktags({id : …
11 ajax  tinymce  editor 


1
覆盖默认的WordPress核心翻译
WordPress设置为荷兰语。当我使用get_the_archive_title()主题时,会在类别存档页面上正确输出“类别:类别名称”。但是,我希望阅读“ Sectie:类别名称”。 我不想更改wp-content / languages文件夹中的荷兰语文件,因为它将通过WordPress更新来更新。 我尝试复制该翻译文件,更改“类别”翻译,然后将新的nl_NL.mo文件放入my-theme / languages中。这没有任何作用。 如何在不更改核心翻译文件的情况下为某些字符串实现不同的翻译?

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.