wordpress-theming 相关问题

WordPress主题系统是为WordPress驱动的博客/网站设计样式的方式。

如何为自定义帖子类型的自定义角色提供功能

我正在尝试为我的自定义角色提供“学生”功能,以便他们可以使用自定义帖子类型“事件”。使用我当前的代码,自定义角色只能“查看”所有自定义帖子...

回答 1 投票 0

wordpress 评论中的简单表情符号

我的网站基于WP版本6.2.2。 我想让我的访问者能够在他们的评论中添加表情符号。 是的..他们可以从手机键盘上选择表情符号..但基于谷歌分析...

回答 1 投票 0

在 WooCommerce 可变产品页面中显示其他变体图像

在此问题中,在此处输入链接描述,我可以从 Woocommerce 管理面板产品变体部分选择并添加其他变体图像,但随后我尝试在

回答 0 投票 0

哪个是 WordPress 中 woocommerce 的最佳预订插件

WooCommerce 最好的免费预订插件是什么。如果有人知道这个答案请告诉我 我想要一个好的解决方案,因为我已经使用了很多插件,但这都是有用的......

回答 0 投票 0

编辑网站时 WordPress 仪表板显示纯 HTML 和 404 错误:需要帮助解决问题

问题 我今天打开 WordPress 在我的网站上工作,但遇到了一个问题:我的 WordPress 仪表板显示为纯 HTML 并且没有响应。单击“主页”链接...

回答 0 投票 0

使用 Elementor 和 Envato 模板的 WordPress 网站上的分隔线导致页眉和页脚问题

问题 我在使用 Elementor 和 Envato 模板设计的 WordPress 网站时遇到问题。我的页眉和页脚部分之间出现分隔线,这使我的网站看起来

回答 2 投票 0

嗨,我是一名 WordPress 初学者,我正在使用它为我制作一个网站

我正在使用 Astra 主题和 elmentor 当我尝试使用本地主机登录网站时出现此消息 消息是: 致命错误:C:\x 中超出了 120 秒的最大执行时间...

回答 0 投票 0

如何编辑单品的Woocommerce区块?更新后 UI/CSS 看起来很混乱

这是商店页面的UI,(这对我来说是理想的UI,在整个主题中保持相同) 在此输入图像描述 但当它被创建为单一产品的 Woocommerce 块时,它看起来...

回答 0 投票 0

wordpress 自定义菜单未对齐

我正在尝试对齐菜单元素,我尝试了多种方法和很多次,但我无法让它工作。 我目前正在学习教程 这是我目前的结果: 我添加了大部分代码...

回答 1 投票 0

WordPress 登录测试出现致命错误!复印机插件

您好,我目前在尝试迁移我的 WordPress 网站之一时遇到了问题。我遇到了一个问题,上面写着 `脚本文件测试:/home/uarbnvd4dt71/public_html/testingsite.wordpresss...

回答 0 投票 0

在wordpress中触发页面加载点击

我正在使用此代码作为我在 WordPress 中制作的自定义表单。 document.querySelector('.startLINK a').onclick = function() { 让 wrpms = document.querySelector('.firstscren'); 让formslider =

回答 0 投票 0

如何更改wordpress主题代码,带有图像(徽标)的文本?

我需要在我的 wordpress 主题中更改文本(徽标),但我不知道如何? 在标题中。 我试图在主题文件编辑器中编辑它。 我尝试在主题文件编辑器中编辑它,当我使用

回答 0 投票 0

样式表在加载到我的 WordPress 网站时抛出 404 错误

我是 wordpress 的绝对初学者,我正在上 udemy 的课程,使用客户主题从头开始构建 wordpress 网站。 但是我的风格没有应用到我的 wordpress 网站和...

回答 1 投票 0

wpdp::prepare() 中日期的占位符

我正在寻找一种在 wpdb::prepare() 函数中传递日期占位符的解决方案。 例如: wpdb->get_var( $wpdb->prepare( "SELECT count(_id) FROM " . $this->get_table_...

回答 0 投票 0

您没有访问此资源的权限。服务器无法读取 htaccess 文件,为了安全拒绝访问

我想更新我的 Wordpress 网站,在更新之前我备份了整个网站文件夹,所以我安装了一个更新的主题,但后来我决定通过删除整个

回答 2 投票 0

如果选择了一个组,如何创建元素或小部件以获取特定位置的所有组?

如何获取特定位置的所有 ACF 组,然后如果选择了一个组,则使用 AJAX 和 jQuery 获取其字段? 任何人都请帮助我,我将非常感激 如何获取特定位置的所有 ACF 组,然后如果选择了一个组,则使用 AJAX 和 jQuery 获取其字段? 任何人请帮助我,我将非常感激 <?php if ( !defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } class Elementor_List_Widget extends\ Elementor\ Widget_Base { public function get_name() { return 'elementor-acf-fields'; } public function get_title() { return __( 'acf groups and fields', 'elementor-acf-fields' ); } public function get_icon() { return 'eicon-editor-code'; } public function get_categories() { return [ 'General' ]; } protected function _register_controls() { $all_groups = get_groups(); $get_fields = get_acf_fields(); $this->start_controls_section( 'section_acf_fields', [ 'label' => __( 'ACF Fields', 'elementor-acf-fields' ), ] ); $this->add_control( 'acf_groups', [ 'label' => __( 'ACF Groups', 'elementor-acf-fields' ), 'type' => \Elementor\ Controls_Manager::SELECT, 'groups' => $all_groups, 'default' => '', 'label_block' => true, 'ajax' => [ 'callback' => [ $this, 'get_acf_fields' ], 'event' => 'change', ], ] ); $this->add_control( 'acf_fields', [ 'label' => __( 'ACF Fields', 'elementor-acf-fields' ), 'type' => \Elementor\ Controls_Manager::SELECT, 'options' => $second_variable, 'default' => '', 'label_block' => true, ] ); $this->end_controls_section(); } public function get_acf_fields( $request ) { $group_id = $request[ 'group_id' ]; $fields = []; if ( function_exists( 'acf_get_fields' ) ) { $acf_fields = acf_get_fields( $group_id ); if ( $acf_fields ) { foreach ( $acf_fields as $field ) { $fields[ $field[ 'key' ] ] = $field[ 'label' ]; } } } return [ 'options' => $fields, ]; } public function get_groups() { if ( function_exists( 'acf_get_field_groups' ) ) { $acf_groups = \acf_get_field_groups(); } else { $acf_groups = \apply_filters( 'acf/get_field_groups', [] ); } $specifications_group_id = $acf_groups; // Post ID of the specifications field group. $specifications_fields = array(); $fields = acf_get_fields( $specifications_group_id ); foreach ( $fields as $field ) { $field_value = get_field( $field['name'] ); if ( $field_value && !empty( $field_value ) ) { $specifications_fields[$field['name']] = $field; $specifications_fields[$field['name']]['value'] = $field_value; } } return $specifications_fields; } protected function render() {} } 选择一个选项时,根据其自定义位置在下拉列表中获取所有 acf 组的答案,然后其字段将显示,请参见下面的代码。为此,我创建了名为“jpro_acf_group_select2”的自定义元素控件 <?php /** * Elementor currency control. * * A control for displaying a select field with the ability to choose currencies. * * @since 1.0.0 */ class Elementor_Jobpro_ACF_Group_Select2_Control extends \Elementor\Base_Data_Control { /** * Get currency control type. * * Retrieve the control type, in this case `currency`. * * @since 1.0.0 * @access public * @return string Control type. */ public function get_type() { return 'jpro_acf_group_select2'; } public function enqueue() { //wp_enqueue_script( 'select2', 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js', array( 'jquery' ), '4.0.13', true ); wp_register_script( 'elementor-group-scripts', get_plugin_url( '/assets/js/elementor-group-scripts.js'), [ 'jquery-elementor-select2' ], '1.0.0' ); //wp_register_script( 'elementor-group-scripts', get_plugin_url( '/assets/js/elementor-group-scripts.js'), [ 'select2' ], '1.0.0' ); wp_enqueue_script( 'elementor-group-scripts' ); $jobpro_plugin_arr = array( 'site_url' => home_url('/'), 'ajax_url' => home_url('/?jobpro_settings=1'), 'error_msg' => esc_html__('There is some problem.', 'jobpro-employement-verification'), ); wp_localize_script('elementor-group-scripts', 'jobpro_plugin_data', $jobpro_plugin_arr); } public function get_value( $control, $settings ) { if ( isset( $settings[ $control['name'] ] ) ) { $group_item = $settings[ $control['name'] ]; } else { $group_item = $control['default']; } return $group_item; } /** * Render currency control output in the editor. * * Used to generate the control HTML in the editor using Underscore JS * template. The variables for the class are available using `data` JS * object. * * @since 1.0.0 * @access public */ public function content_template() { $control_uid = $this->get_control_uid(); ?> <div class="elementor-control-input-wrapper"> <select id="<?php echo $control_uid; ?>" class="elementor-select2 jobpro-resume-group-select2 {{{ data.class }}}" type="select2"data-setting="{{ data.name }}"> <# var printOptions = function( options ) { _.each( options, function( option_title, option_value ) { #> <?php // If the option title is array of title & icon. ?> <option value="{{ option_value }}">{{{ option_title?.title || option_title }}}</option> <# } ); }; if ( data.groups ) { for ( var groupIndex in data.groups ) { var groupArgs = data.groups[ groupIndex ]; if ( groupArgs.options ) { #> <optgroup label="{{ groupArgs.label }}"> <# printOptions( groupArgs.options ) #> </optgroup> <# } else if ( _.isString( groupArgs ) ) { #> <option value="{{ groupIndex }}">{{{ groupArgs }}}</option> <# } } } else { printOptions( data.options ); } #> </select> </div> <# if ( data.description ) { #> <div class="elementor-control-field-description">{{{ data.description }}} </div> <# } #> <?php } } 下面是它的js和ajax // Wait for the Elementor editor to load jQuery(window).on('elementor:init', function () { // Add custom control JS to the widget edit mode elementor.hooks.addAction('panel/open_editor/widget', function (panel, model, view) { // Check if the current widget is our custom widget if (model.get('widgetType') === 'resume-listings') { jQuery('.jobpro-resume-group-select2').select2({ width: '100%', allowClear: true, placeholder :'Select Group', }); var widgetType = model.get( 'widgetType' ); var settings = model.get('settings'); var $element = jQuery('#elementor-panel-page-editor').find('.jobpro-group-key'); var settings_attributes = settings.attributes; var select_resume_group = settings.attributes.select_resume_group; if(select_resume_group == 'undefined'){ select_resume_group = jQuery('.jobpro-resume-group-select2').val(); } var $fields_element = jQuery('#elementor-panel-page-editor').find('.jobpro-acf-group-fields-select2'); if(select_resume_group){ if ( $element.length ) { $element.val(select_resume_group); } if ( $fields_element.length ) { $fields_element.data('group_item', select_resume_group); jobpro_resume_group_fields_(settings_attributes, $fields_element, select_resume_group); } } jQuery(document).on('change', '.jobpro-resume-group-select2',function (e) { select_resume_group = jQuery(this).val(); $element.val(select_resume_group); $fields_element.data('group_item', select_resume_group); $fields_element.val('').trigger('change'); jobpro_resume_group_fields_(settings_attributes, $fields_element, select_resume_group); }); function jobpro_resume_group_fields_(settings_attributes, $fields_element, select_resume_group){ jQuery.ajax({ type: "GET", dataType: "json", url: jobpro_plugin_data.site_url+'wp-json/wp/v1/jobpro-get-group-fields', data: { search: '', verification_group: select_resume_group, }, success: function(data) { if (data.status == 'success') { $fields_element.find('option:not(:first)').remove(); jQuery.each(data.results, function(index, option) { $fields_element.append(jQuery('<option>').text(option.text).attr('value', option.id)); }); $fields_element.each(function() { var currentElement = jQuery(this); let dropdownName = currentElement.attr('name'); if(dropdownName == 'undefined'){ dropdownName = currentElement.data('setting'); } dropdownName = currentElement.data('setting'); if(dropdownName !== 'undefined'){ var keyValue = settings_attributes[dropdownName]; currentElement.val(keyValue).trigger('change'); } }); } }, error: function(jqXHR, textStatus, errorThrown) { console.error(errorThrown); } }); } $fields_element.select2({ width: '100%', allowClear: true, placeholder :'Select Group Fields', //minimumInputLength: 3, tags: false, ajax: { data: function (params) { if ( select_resume_group.length < 1 || select_resume_group == 'undefined') { select_resume_group = jQuery('.jobpro-resume-group-select2').val(); } var query = { search: params.term, verification_group: select_resume_group } return query; }, url: jobpro_plugin_data.site_url+'wp-json/wp/v1/jobpro-get-group-fields', dataType: 'json', cache: true, } }); } }); }); 下面是ajax public function jobpro_load_group_fields(){ $search = !empty($_GET['search']) ? sanitize_text_field($_GET['search']) : ''; $verification_group = !empty($_GET['verification_group']) ? sanitize_text_field($_GET['verification_group']) : ''; $acf_group_object = get_field_object($verification_group); $verification_group_fields = !empty($acf_group_object['sub_fields']) ? $acf_group_object['sub_fields'] : ''; $responsedata = array(); $responsedata['status'] = 'success'; $responsedata['results'] = array(); foreach ($verification_group_fields as $field) { $name = isset($field['name']) ? $field['name'] : ''; $label = isset($field['label']) ? $field['label'] : ''; $responsedata['results'][] = array('id' => $name, 'text' => $label); } wp_send_json($responsedata); }

回答 1 投票 0

从私人 GitHub Repo 更新 WordPress 主题/插件

背景 我正在为我的 WordPress 网站开发一个自定义主题,我想从私人 GitHub 存储库中进行管理。 (这个主题永远不会被推入 WordPress 市场)一般......

回答 3 投票 0

找不到添加 GTM 正文脚本的位置 - pixelyoursite

我正在尝试为我的 wordpress 网站设置 GTM,我正在使用 pixelyoursite 作为我的跟踪插件。问题是,我拥有的 GTM 脚本用于头部和身体,而 pixelyoursite 仅

回答 1 投票 0

旅游预订(酒店/航班/套餐)的多供应商网站

我想制作/创建用于旅游/旅行预订的多供应商网站。 所以,我要使用 WordPress WooCommerce 框架,有一个多供应商插件,但我找不到现成的多供应商 p...

回答 0 投票 0

How to change font-family of the headers, like h2?

这个问题有点奇怪: 我添加了一个新的字体系列,它被应用于主题中的所有地方,除了主页介绍标题。 我手动添加了一个代码(通过选择确切的类...

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.