使用 javascript 将 texonomy 添加到 WordPress 帖子

问题描述 投票:0回答:1

我开发了一个插件,可以在 WordPress 后台的 edit.php 页面添加一个按钮。此按钮使用远程 JSON 文件中的数据填充某些字段。但是,我在正确添加标题和分类数据时遇到问题。有人可以帮我弄清楚如何做到这一点吗?

这是我的代码:

    <script>
    document.addEventListener('DOMContentLoaded', function() {
        document.getElementById('loadButton').addEventListener('click', function(event) {
            event.preventDefault();

            var imdbID = document.getElementById('imdb-title').value;
            var url = '/wp-content/plugins/imdb/get.php?id=' + imdbID;

            fetch(url)
                .then(response => response.json())
                .then(data => {
                    //document.getElementById('name').value = data.name || '';
                    document.getElementById('ratings-movie').value = data.score || '';
                    document.getElementById('year-type').value = data.year || '';
                    document.getElementById('period-time').value = data.duration || '';
                    document.getElementById('rating').value = data.vote || '';
                    document.getElementById('gross-worldwide-movie').value = data.boxoffice || '';  
                    document.getElementById('age-limit').value = data.contentrating || '';
                    document.getElementById('awards-series').value = data.awards || '';
                    document.getElementById('metascore').value = data.metascore  || ''; 
                    document.getElementById('top250-movies').value = data.imdbrate   || '';
                    document.getElementById('budget-movie').value = data.budget  || '';
                    //document.getElementById('title').value = data.name;
                    var tags = '1,2,3,4,5,56,7';
                    //var tags = data.tags || '';  
                    var tagInput = document.getElementById('components-form-token-input-0'); 
                    if (tags && tagInput) {
                    tags.split(',').forEach(function(tag) {
                        tag = tag.trim();
                        if (tag) {

                            tagInput.value = tag;

                            document.getElementById('submit_tag').click();
                        }
                    });
                    }
            })
                .catch(error => {
                    console.error('Error fetching data:', error);
                    alert('Error loading JSON data.');
                });
        });
    });
    </script>

标题和标签(分类)字段未按预期填写。所有其他字段均已正确填充,但标题仍为空,并且未分配标签

javascript php jquery wordpress taxonomy
1个回答
0
投票

如果没有看到 HTML,很难准确判断问题出在哪里,但是有几件事很突出:

  • 标题和名称字段使用 ID“标题”和“名称”,它们非常通用,如果页面上还有其他具有相同 ID 的内容,我一点也不会感到惊讶。如果是这种情况,当您使用
    document.getElementById()
    时,它只会找到具有该 ID 的 first 元素。
  • 关于标签,您在紧密循环中单击按钮(即您在继续之前不等待结果),根据该标签提交背后的机制,您可能会看到意外的行为。如果它提交到服务器,那么最好在尝试提交下一个标签之前等待响应返回,如果它在提交之前将其添加到 UI 并将其存储在本地,您可能需要验证该项目是否已添加在您希望看到它的 UI 中。我认为无论发生哪种方法,使用“waitFor”类型的方法来等待该项目出现在 UI 中可能是一个好方法(假设如果它被发送到服务器,它将被添加到 UI请求成功后)。
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.