WordPress

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

5
检查数据库表是否存在
我读过Wordpress Codex和专业Wordpress。似乎两者都使用类似 if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { 确定表是否存在。有什么理由CREATE TABLE IF NOT EXISTS ( ... )不使用?它将在1个查询中检查并创建表,这会更好吗?还是我错过了什么?
11 database  mysql 

4
如何在没有P标签包装的情况下回显the_excerpt?
在下面的代码片段中,我试图使the_excerpt被写出而没有标签。但是,源格式显示the_excerpt始终包装在P标签中。如何删除没有标签的摘录? foreach($myrecentposts as $idxrecent=>$post) { ?> <li class="page_item"> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <?php echo strip_tags(substr( the_excerpt(), 0, 75 ))."..." ?> </li><?php } echo "</ul> </div>";}


2
wp_数据库在哪里定义了可用的角色?
我在列表中测试了我在多站点网络上使用的插件的私人Beta版。 插件作者在其中具有添加自定义角色的代码。他们有一个错误,该错误消除了赋予用户除其一个自定义角色以外的任何角色的能力。 当我访问时../wp-admin/network/site-users.php,“添加用户”角色下拉列表仅显示此插件添加的一个角色。更改角色下拉菜单显示所有WP默认角色,以及此角色和其他插件添加的一些其他角色。如果我尝试将用户更改为这些角色之一,则会出现“您不能为用户提供该角色”错误页面。 我一直在与开发人员讨论此事,他们似乎感到困惑。 我一直在浏览数据库和法典,但找不到有效角色的定义位置。

8
使用get_users获得多个角色
我有一些这样的代码: $ query_args = array(); $ query_args ['fields'] = array('ID','display_name'); $ query_args ['role'] ='订户'; $ users = get_users($ query_args); foreach($ users as $ user)$ users_array [$ user-> ID] = $ user-> display_name; 我想获得更多的角色,并且还包括contributor,author以及使用Role Scoper插件创建的一些自定义角色,例如Manager等等。有get_users什么想法可以做到这一点吗? 谢谢
10 users 


1
请从低层次解释Wordpress如何与MySQL字符集和排序规则一起使用
正如问题标题所暗示的那样,我希望了解Wordpress如何与MySQL字符集和排序规则选项一起使用。正如我将在下面显示的那样,事情对我来说没有太大意义。 我按照其安装页面上的说明安装了Wordpress: https://codex.wordpress.org/Installing_WordPress 作为说明的一部分,我按照他们的建议在命令行上手动创建MySQL数据库,即命令: mysql> CREATE DATABASE databasename; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"hostname" -> IDENTIFIED BY "password"; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) mysql> EXIT 此外,按照指示,我编辑了“ wp-config.php”文件以使用UTF-8字符集: define( 'DB_CHARSET', …

1
如何使用定制程序设置实现选择性刷新?
我正在制作的主题的页面模板中有一个部分,该部分根据用户使用下拉列表控件在定制器中选择的页面显示内容。现在,它仅使用标准的默认刷新传输方式,但是由于那样重装整个iframe很麻烦,我想知道是否有可能使用新的选择性刷新功能。但是我不确定如何实现它。有人知道这是否可行吗? 这是我的页面模板中显示内容的代码: <?php if ((get_theme_mod( 'intro_page' )) != '') { $intro_id = get_theme_mod( 'intro_page' ); $intro_header = get_the_title( $intro_id ); $intro_excerpt = get_the_excerpt( $intro_id ); $intro_link = get_the_permalink( $intro_id ); $intro_linktext = get_post_meta( $intro_id, 'emm_cta_text', true ); echo '<h1>' . esc_html($intro_header) . '</h1>' . '<p>' . esc_html($intro_excerpt) . '</p>'; if( …


2
is_page_template()与什么比较?
查看Wordpress文档,它说is_page_template()与提供的“模板名称”进行比较。 我有存储在模板page-homepage.php名为Homepage: /* * Template Name: Homepage * Description: The template for displaying the homepage */ 当我使用该模板时,我希望在我的functions.php中运行一些代码: if (is_page_template('Homepage')) { ... 但是当我在使用该模板的页面上时,不会触发该事件。 当我查看Wordpress执行的代码时,is_page_template()看起来它实际上是在检查文档名称,而不是模板名称...? function is_page_template( $template = '' ) { $page_template = get_page_template_slug( get_queried_object_id() ); if ( $template == $page_template ) return true; 在我的实例中,这似乎$page_template是page-homepage.php-不是模板名称,如文档所示...? 难道我做错了什么?

1
用wordpress运行silex或slim
我正在WordPress上运行主题。在这个主题中,我正在进行一些AJAX调用,希望能对此有所回应。(http://example.com/capis/v0/packages/) 为了提供上述HTTP调用,我将silex用作http服务器。 index.php <?php require_once __DIR__ . '/vendor/autoload.php'; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Silex\Application; $app = new Silex\Application(); $app->POST('/capis/v0/packages/', function(Application $app, Request $request) { # logic return new Response('HELLO'); }); $app->run(); 我正在使用php在8080端口上运行服务器,该服务器正在为ajax调用提供数据。 php -S localhost:8080 -t web web/index.php 现在,我只想通过使用WordPress服务这些Ajax调用。我不想运行特定的php服务器。
10 plugins  rest-api 

1
如何将两个作者合并为一个?
我在WordPress网站上有几篇文章。一些帖子属于Author1,而其他帖子则属于Author2。有没有办法(插件?)合并作者(例如,将Author1合并到Author2中),并让所有帖子具有一个作者姓名? 编辑:使用“合并”,其含义应理解为“删除一位作者,将所有帖子分配给另一位作者”。
10 users 

2
wp_insert_post()中的“ meta_input”参数用于什么?
我正在使用wp_insert_post()函数将一些帖子插入wordpress中。 我想在每篇文章中插入一些自定义字段并阅读文档,尽管我使用了meta_info参数,但我尝试过这样的事情: $data = array( 'post_author' => 1, 'post_status' => 'publish', 'post_title' => $post->getTitle(), 'post_content' => $post->getContent(), 'post_category' => $post->getCategory(), 'tags_input' => $post->getTags(), 'meta_input' => array( "_test" => "testx1" ) ); $postID = wp_insert_post( $data ); 该帖子会正确插入并且也有标签。但是没有添加自定义字段。我知道我可以使用add_post_meta()添加它们,但我仍然想知道meta_input参数的用途,因为在插入帖子后我在数据库中搜索了“ testx1”,但找不到任何结果。

2
isset($ wp_filter ['all'])中的“全部”是什么
我是WordPress的新手。我试图了解它如何生成XHTML页面。我猜这是它的功能do_action( 'hook-name' ),但是isset( $wp_filter['all] )在阅读函数do_action时我仍然对指令的理解有些困惑,因为我不理解单词的含义all。 是PHP功能还是WordPress功能?
10 hooks 

2
如何做动作并获得返回值?
因此,存在以下情况。 我添加了一个从数据库中清除日志的操作: add_action( 'myplugin_clean_logs', array( 'MyPlugin_Logs', 'clean_logs' ) ); 现在,我想定期运行此操作: wp_schedule_event( current_time( 'timestamp' ), 'daily', 'myplugin_clean_logs' ); 并手动执行: do_action( 'myplugin_clean_logs' ); 该方法MyPlugin_Logs::clean_logs返回受影响的行的计数;如果其他方向相反,则返回false。 现在,我要显示已删除的行数。我会想象这样的事情: $affected_rows = do_action( 'myplugin_clean_logs' ); echo $affected_rows . ' entries have been deleted.'; 但是由于do_action不会返回任何值,因此我不知道如何获取返回值。 我是否应该在手动运行时直接执行该方法,但对计划事件使用操作?
10 actions 

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.